4

如在 中go-chi,在单个路由级别设置中间件,而不仅仅是为所有路由全局设置

// Routes creates a REST router
func Routes() chi.Router {
    r := chi.NewRouter()
    r.Use(middleware.Captcha)

    r.Post("/", Login)

    return r
}

如何Login指定唯一的中间件或从通用中间件中排除?

4

1 回答 1

8

你有两个选择。任何路由器都支持的自然方式:

r.Post("/", middlewareFunc(Login))

或者,如果您想使用特定于 Chi 的方式,请为一个特定端点创建一个新组:

loginGroup := r.Group(nil)
loginGroup.Use(middleware)
loginGroup.Post("/", Login)
于 2017-12-24T10:13:11.583 回答