Gorilla Mux Use()函数不起作用

nwnhqdif  于 2022-12-07  发布在  Go
关注(0)|答案(2)|浏览(136)

我想使用GorillaMux包的Use()函数,但是我不能让它工作。它说:r.Use undefined (type *mux.Router has no field or method Use)。我几乎使用了文档中的identical示例。我的代码看起来像这样。

package main

import (
    "net/http"
    "github.com/gorilla/mux"
    "fmt"
)

func simpleMw(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        fmt.Println(r.RequestURI)
        next.ServeHTTP(w, r)
    })
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "hello")
}

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/", handler)
    r.Use(simpleMw)
    http.Handle("/", r)
    http.ListenAndServe(":8000", nil)
}

您可以在此处找到文档示例:请搜索“中间件”。
我知道我可以使用this方法,但我想使用Gorilla包。
多谢了。

xtfmy6hx

xtfmy6hx1#

感谢Ivan Velichko,我解决了我的问题。我的软件包过时了。我用go get -u github.com/gorilla/mux更新了它,现在它可以工作了。非常感谢你们!

rt4zxlrg

rt4zxlrg2#

ListenAndServe中错误为空:

http.ListenAndServe(":8000", r)

相关问题