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)
}

  

posted on 2020-08-30 20:59  longzhankunlun  阅读(168)  评论(0编辑  收藏  举报