猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
急求!!!!goalng框架Gin中间件的c.Next()有什么作用?
感觉用不用效果一样的啊,看文档说是执行挂起程序,具体怎么好理解一些呢,每个中间件一定要用吗?
九州编程
浏览 458
回答 2
2回答
收到一只叮咚
中间件可以理解为洋葱穿透。c.Next()之前的操作是在Handler执行之前就执行;c.Next()之后的操作是在Handler执行之后再执行;funcMiddleware(c*gin.Context){fmt.Println("HelloBefore;")c.Next()fmt.Println("HelloAfter;")}然后你在Handler中输出一些内容就能发现。HelloBefore在你的Handler之前就输出。HelloAfter在之后输出。之前的操作一般用来做验证处理,访问是否允许之类的。之后的操作一般是用来做总结处理,比如格式化输出、响应结束时间,响应时长计算之类的。
0
0
0
慕少森
中间件用的,不要管啥挂不挂起的,我估计是翻译的锅。假如你用两个中间件//打印请求处理事件funcMiddleware1(ctx*gin.Context){start:=time.Now()//记录开始时间ctx.Next()//调用处理过程(会产生调用耗时)t:=time.Since(start)//调用处理过程完毕后计算时间差fmt.Println(t)//打印本次请求处理时间差}funcMiddleware2(ctx*gin.Context){if(!service.CheckLogin(ctx)){//登录检测,未登录return//直接return,该请求的处理结束}ctx.Next()//登录检测通过,继续后续处理}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续