假设有下面一段程序,如何实现每次访问:8000/test时,都要先执行某个函数,完成testHandle后再执行某个函数?
```
func main() {
http.HandleFunc("/test", testHandle)
err := http.ListenAndServe(":8000", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
```
需要自己实现 HandlerFunc,比如这里:https://github.com/studygolang/mux/blob/master/filter.go, 实现你说的这种功能,本站的开发就用到了这个。
#1
更多评论
抱歉,举的例子不全面,其实在我们的生产环境中是会存在N个http.HandleFunc的,每个http.HandleFunc都加2个函数不好维护,可读性也差。
当然,如果所有http.HandleFunc所需的hook都放在一个配置文件中也不错。
#3