如何正确地与路由器 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