我正在尝试使用 mux 并设置一些处理程序。我有以下处理程序func homePage(w http.ResponseWriter, r *http.Request) { // Some code}func main() { router := mux.NewRouter().StrictSlash(true) router.HandleFunc("/", homePage) log.Fatal(http.ListenAndServe(":8090", router))}有没有办法将更多参数传递给处理函数,以便我可以做更多的逻辑?我的意思是向homePage名为message. 像这样的东西...func homePage(w http.ResponseWriter, r *http.Request, message string) { // Do some logic with message // Rest of code}func main() { router := mux.NewRouter().StrictSlash(true) router.HandleFunc("/", homePage("hello")) log.Fatal(http.ListenAndServe(":8090", router))}
1 回答
DIEA
TA贡献1820条经验 获得超2个赞
执行此操作的常用技术是从接受您想要的任何其他参数的函数返回处理程序,如下所示:
package main
import (
"net/http"
)
func homePage(msg string) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
// Do stuff with "msg"
w.Write([]byte(msg))
}
}
func main() {
http.HandleFunc("/", homePage("message"))
http.ListenAndServe(":8090", nil)
}
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消