goalng框架Gin中间件的c.Next()有什么作用?

感觉用不用效果一样的啊,看文档说是执行挂起程序,具体怎么好理解一些呢,每个中间件一定要用吗?

阅读 5.5k
评论
    9 个回答

    中间件可以理解为洋葱穿透。

    c.Next() 之前的操作是在 Handler 执行之前就执行;
    c.Next() 之后的操作是在 Handler 执行之后再执行;

    func Middleware(c *gin.Context) {
        fmt.Println("Hello Before;")
        
        c.Next()
        
        fmt.Println("Hello After;")
    }

    然后你在Handler中输出一些内容就能发现。Hello Before 在你的Handler之前就输出。 Hello After在之后输出。

    之前的操作一般用来做验证处理,访问是否允许之类的。
    之后的操作一般是用来做总结处理,比如格式化输出、响应结束时间,响应时长计算之类的。

      相似问题
      推荐文章