0
点赞
收藏
分享

微信扫一扫

Gin框架教程 # 中间件

時小白 2022-02-28 阅读 162

全局中间件

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

    // 默认使用了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}) // 页面接收
        }}
    }

Next()

func MiddleWare() gin.HandlerFunc {
    return func(c *gin.Context) {
        ...
        c.Next() // 先执行函数
        // 中间件执行完后续的一些事情
        ...
    }
}

局部中间件

    //局部中间键使用
    r.GET("/ce", MiddleWare(), func(c *gin.Context) { // 三个参数
       ...
    })

常用中间件

清单

Reference

  1. Topgoer文档 gin 中间件
举报

相关推荐

0 条评论