Годжи SubRouter возвращает 404 - PullRequest
0 голосов
/ 19 марта 2019

Вот код

package main

import (
    "fmt"
    "net/http"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
    "github.com/zenazn/goji/web/middleware"
)

type handler struct{}

func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    subMux := web.New()
    subMux.Use(middleware.SubRouter)
    subMux.Post("/:id", func(c web.C, w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "OK")
    })

    subMux.ServeHTTP(w, r)
}

func main() {
    goji.Handle("/inner/*", handler{})
    goji.Serve()
}

Основная идея заключается в том, чтобы инкапсулировать маршруты обработчиков и использовать стандартный интерфейс обработчиков net / http. Так почему следующий код выдает 404 и не использует подчиненный маршрутизатор?

curl -X POST http://localhost:8000/inner/5
404 page not found

1 Ответ

0 голосов
/ 19 марта 2019

Если вы измените его так, вы можете получить данные поста.

package main

import (
    "fmt"
    "net/http"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
    "github.com/zenazn/goji/web/middleware"
)

type handler struct{}

func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "OK")
}

func main() {
    subMux := web.New()
    subMux.Use(middleware.SubRouter)
    subMux.Post("/:id", handler{})

    goji.Handle("/inner/*", subMux)
    goji.Serve()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...