簡體   English   中英

在 golang 中使用 chi 中間件時無法運行 controller

[英]Unable to run controller while using chi middleware in golang

我正在使用 chi 在 golang net/http中編寫中間件 function 但 controller function 未在函數中執行(無法打印)。

調用中間件:

r.With(myMiddleware.Authware).Post("/tryon", mainController.Tryon)

package - myMiddleware

func Authware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        // Middleware code
    })
}

package - 主控制器

func Tryon(w http.ResponseWriter, r *http.Request) {
    // Dosent print anything
    log.Println(1)
}

我閱讀了文檔,但沒有多大幫助

你能幫忙調試一下,讓我知道為什么會這樣嗎? 另外,如果我想從中間件返回一些數據到controller,我該怎么做?

主.go

func main() {
    r := chi.NewRouter()
    r.With(middle.Authware).Post("/tryon", controller.Tryon)
    http.ListenAndServe(":3000", r)
}

通過middleware邏輯后調用controller

中間件.go

func Authware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        // Middleware code
        next.ServeHTTP(w, r)
    })
}

controller.go

func Tryon(w http.ResponseWriter, r *http.Request) {
    // Doesn't print anything
    log.Println(1)
}

如果你真的希望它是一個POST請求: curl -X POST localhost:3000/tryon

PS:go 通過這里的代碼示例: https://github.com/go-chi/chi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM