猿问

Go 中的路由器 - 在每个 http 请求之前运行一个函数

我将 Go 与 http 一起使用,如下所示:


mux := http.NewServeMux()

mux.HandleFunc("/API/user", test)

mux.HandleFunc("/authAPI/admin", auth)

我想在每个 http 请求之前运行一个函数,更好的是,在每个包含 /authAPI/ 的请求上运行一个函数。

我如何在 Go 中实现这一目标?


不负相思意
浏览 255回答 2
2回答

繁星点点滴滴

我将 Go 与 http 一起使用,如下所示:mux := http.NewServeMux()mux.HandleFunc("/API/user", test)mux.HandleFunc("/authAPI/admin", auth)我想在每个 http 请求之前运行一个函数,更好的是,在每个包含 /authAPI/ 的请求上运行一个函数。我如何在 Go 中实现这一目标?

摇曳的蔷薇

你可以只写一个包装函数:func wrapHandlerFunc(handler http.HandlerFunc) http.HandlerFunc {  return func(w http.ResponseWriter, req *http.Request) {    // ...    // do something    // ...    handler(w, req)  }}并像这样使用它:mux.HandleFunc("/authAPI/admin", wrapHandlerFunc(auth))mux据我所知,不支持为给定 URL 树(子路由器,用语)下的所有内容自动运行它。
随时随地看视频慕课网APP

相关分类

Go
我要回答