package main
import (
"net/http"
"github.com/julienschmidt/httprouter"
)
func test(w http.ResponseWriter, r *http.Request){
// you code...
}
type middleWareHandler struct {
r *httprouter.Router
}
func NewMiddleWareHandler(r *httprouter.Router, cc int) http.Handler {
m := middleWareHandler{}
m.r = r
return m
}
func RegisterHandles() *httprouter.Router {
router := httprouter.New()
router.GET("/test", test)
return router
}
// 中间件
func (m middleWareHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// test()执行之前
// you code
m.r.ServeHTTP(w, r) //页面被关闭,或handler函数执行完毕,该函数才会执行完
// test()执行之后
// you code
}
func main() {
r := RegisterHandles()
mh := NewMiddleWareHandler(r)
http.ListenAndServe(":9000", mh)
}