如何正确地与路由器 handleFunc 进行模式匹配?
how to correctly pattern match with routers handleFunc?
我正在使用 gorilla web 工具包和 golang,并且有以下代码
func test(w http.ResponseWriter, r *http.Request) {
fmt.Println("test was called ..")
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
mx := mux.NewRouter()
mx.HandleFunc(?, test)
http.ListenAndServe(":8080", mx)
}
我的服务器将提供一个 html-文档,其中的表单会执行获取请求并发送“/?id={something}”。如何在 mx.HandleFunc 中设置模式以匹配查询以便调用测试?
我试过:
"/?id={something},
"/?id=",
mx.HandleFunc("/", test).Queries("id")
mx.HandleFunc("/", test).Methods("POST")
(最后一个我改了相应的页面代码,这样表格就变成了post)。
当使用 .Queries()
时,你需要给它一个键和一个值,比如:
mx.HandleFunc("/", test).Queries("id", "value")
您也可以使用模式作为值,例如:
mx.HandleFunc("/", test).Queries("id", "{id:[0-9]+}")
详情请看这里:http://godoc.org/github.com/gorilla/mux#Route.Queries
我正在使用 gorilla web 工具包和 golang,并且有以下代码
func test(w http.ResponseWriter, r *http.Request) {
fmt.Println("test was called ..")
}
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
mx := mux.NewRouter()
mx.HandleFunc(?, test)
http.ListenAndServe(":8080", mx)
}
我的服务器将提供一个 html-文档,其中的表单会执行获取请求并发送“/?id={something}”。如何在 mx.HandleFunc 中设置模式以匹配查询以便调用测试?
我试过:
"/?id={something},
"/?id=",
mx.HandleFunc("/", test).Queries("id")
mx.HandleFunc("/", test).Methods("POST")
(最后一个我改了相应的页面代码,这样表格就变成了post)。
当使用 .Queries()
时,你需要给它一个键和一个值,比如:
mx.HandleFunc("/", test).Queries("id", "value")
您也可以使用模式作为值,例如:
mx.HandleFunc("/", test).Queries("id", "{id:[0-9]+}")
详情请看这里:http://godoc.org/github.com/gorilla/mux#Route.Queries