如何正确模式匹配路由器handleFunc?

时间:2015-03-24 13:37:14

标签: go gorilla

我正在使用gorilla web toolkit和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文档,该表单将执行get-request并发送“/?id = {something}”。如何在mx.HandleFunc中设置模式以匹配查询以便调用测试?

我试过了:

"/?id={something}, 
"/?id=", 
mx.HandleFunc("/", test).Queries("id")
mx.HandleFunc("/", test).Methods("POST") 

(最后一个我更改了相应的页面代码,以便表单代替发布)。

1 个答案:

答案 0 :(得分:2)

使用.Queries()时,您需要为其提供密钥和值,例如:

mx.HandleFunc("/", test).Queries("id", "value")

您还可以使用模式作为值,例如:

mx.HandleFunc("/", test).Queries("id", "{id:[0-9]+}")

详情请见此处:http://godoc.org/github.com/gorilla/mux#Route.Queries