我正在嘗試使用 mux 并設(shè)置一些處理程序。我有以下處理程序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))}有沒(méi)有辦法將更多參數(shù)傳遞給處理函數(shù),以便我可以做更多的邏輯?我的意思是向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貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
執(zhí)行此操作的常用技術(shù)是從接受您想要的任何其他參數(shù)的函數(shù)返回處理程序,如下所示:
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 關(guān)注
- 163 瀏覽
添加回答
舉報(bào)
0/150
提交
取消