我想使用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包。
多谢了。
2条答案
按热度按时间xtfmy6hx1#
感谢Ivan Velichko,我解决了我的问题。我的软件包过时了。我用
go get -u github.com/gorilla/mux
更新了它,现在它可以工作了。非常感谢你们!rt4zxlrg2#
ListenAndServe中错误为空: