func sever() { mx := http.NewServeMux() l, err := net.Listen("tcp", ":3001") if err != nil { log.Println(err) return } mx.HandleFunc("/aa", test) mx.HandleFunc("/bb", test2) http.Serve(l, middle(mx)) } func test(w http.ResponseWriter, r *http.Request) { log.Println("aa") } func test2(w http.ResponseWriter, r *http.Request) { log.Println("bb") } func middle(next http.Handler) http.Handler { return next //这里可以写入条件,符合的直接反馈next,继续执行,如果有其他逻辑按下面的方法进行逻辑处理 // return http.HandlerFunc( // func(w http.ResponseWriter, r *http.Request) { // log.Println("123") // }, // ) }