将参数传递给 golang 中的 mux 处理函数
Passing arguments to mux handler function in golang
我正在尝试使用 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))
}
执行此操作的常用技术是 return 您的处理程序来自一个函数,该函数接受您想要的任何其他参数,如下所示:
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)
}
我正在尝试使用 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))
}
执行此操作的常用技术是 return 您的处理程序来自一个函数,该函数接受您想要的任何其他参数,如下所示:
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)
}