• 所有请求都经过此中间件 ```go package main

    import ( “fmt” “time”

    1. "github.com/gin-gonic/gin"

    )

    // 定义中间 func MiddleWare() gin.HandlerFunc { return func(c *gin.Context) { t := time.Now() fmt.Println(“中间件开始执行了”) // 设置变量到Context的key中,可以通过Get()取 c.Set(“request”, “中间件”) status := c.Writer.Status() fmt.Println(“中间件执行完毕”, status) t2 := time.Since(t) fmt.Println(“time:”, t2) } }

    func main() { // 1.创建路由 // 默认使用了2个中间件Logger(), Recovery() r := gin.Default() // 注册中间件 r.Use(MiddleWare()) // {}为了代码规范 { r.GET(“/ce”, func(c *gin.Context) { // 取值 req, _ := c.Get(“request”) fmt.Println(“request:”, req) // 页面接收 c.JSON(200, gin.H{“request”: req}) })

    1. }
    2. r.Run()

    } ``` 输出结果:
    全局中间件 - 图1 全局中间件 - 图2
    注意: 请注意黑色的数据里面有一步算时间差没有执行(需要学习Next就懂了)