Gur*_*thi 5 middleware go go-chi
使用 Chi 路由器设置中间件时chi.Use和之间有什么区别。chi.With
Use必须在同一组下的所有路由之前声明,而r.With允许您“内联”中间件。
事实上,函数签名是不同的。Use什么都不返回,With返回一个chi.Router.
假设您有一条路线,并且只想向其中一个路线添加中间件,您可以使用r.With:
r.Route("/myroute", func(r chi.Router) {
r.Use(someMiddleware) // can declare it here
r.Get("/bar", handlerBar)
r.Put("/baz", handlerBaz)
// r.Use(someMiddleware) // can NOT declare it here
}
r.Route("/other-route", func(r chi.Router) {
r.Get("/alpha", handlerBar)
r.Put("/beta", handlerBaz)
r.With(someMiddleware).Get("/gamma", handlerQuux)
}
Run Code Online (Sandbox Code Playgroud)
在第一个示例中,someMiddleware为所有子路由声明,而在第二个示例中,r.With仅允许您为路由添加中间件/other-route/gamma。
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |