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

Posted by JC on September 29, 2019

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

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在之后输出。

之前的操作一般用来做验证处理,访问是否允许之类的。

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