Go语言Web框架Tango中的中间件应用级别

xiaolunwen · · 3470 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

Tango在创建之初就支持了全局中间件的支持,经过最近的改进,同时支持了Group级别和Route级别的中间件。下面我们就一起来看下这三种级别的中间件: 比如我们自定义了一个新的中间件: ```Go func MyMiddleware() tango.HandlerFunc { return func(ctx *tango.Context) { ctx.Info("I'm a middleware") ctx.Next() } } ``` # 全局中间件 全局中间件在任何一个请求调用时均会进行调用。用法如下: ```Go t := tango.Classic() t.Use(MyMiddleware()) t.Get("/", func() string {return "global"}) ``` # Group中间件 Group中间件在Group下匹配的路由被调用时会被调用。用法如下: ```Go t := tango.Classic() t.Group("/group", func(g *tango.Group) { g.Use(MyMiddleware()) g.Get("/", func() string {return "group"}) }) ``` # Route中间件 Route中间件在该Route被调用时会被调用。如果有多个,会按照先后顺序调用。用法如下: ```Go t := tango.Classic() t.Get("/route", func() string {return "route"}, MyMiddleware()) ``` # 中间件优先级 * 全局中间件被先调用,Group中间件次之,最后是Route中间件 * 相同级别的中间件,先加入的被先调用

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3470 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传