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

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

阅读 5.6k
评论
    9 个回答

    c.Next() 是让调该Handler 执行下一个Handler. 否则下一个Handler就执行不了。

    gin.Get("/",func (ctx *gin.Context){
         
        fmt.Println(3)
        // 这个是最后一个,因此就不必要调用 ctx.Next() 了,这里是我们常用的控制器方法
    }, func(ctx *gin.Context){
    
        fmt.Println(2)
        ctx.Next()
        // 这里是我们的中间件
    }, func(ctx *gin.Context){
        fmt.Println(1)
        ctx.Next()
    })
    我这里传了3个handler. 顺序传入,但是会逆序执行。
    
    
    中间件的函数签名和执行控制器方法的签名一样,只是中间件一般都在控制器之前执行,所以叫中间件。。。
    
    
      相似问题
      推荐文章