登录
首页 >  Golang >  Go问答

chi.Use 和 chi.With 的不同之处

来源:stackoverflow

时间:2024-02-07 08:48:23 281浏览 收藏

本篇文章向大家介绍《chi.Use 和 chi.With 的不同之处》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

使用 Chi 路由器设置中间件时,chi.Usechi.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)
}

在第一个示例中,为所有子路由声明了 somemiddleware,而在第二个示例中 r.with 允许您仅为 /other-route/gamma 路由添加中间件。

本篇关于《chi.Use 和 chi.With 的不同之处》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>