http - 特定路由上的中间件

标签 http go middleware go-chi

go-chi 一样,在各个路由级别设置中间件,而不是全局设置所有路由

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

    r.Post("/", Login)

    return r
}

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

最佳答案

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

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

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

loginGroup := r.Group(nil)
loginGroup.Use(middleware)
loginGroup.Post("/", Login)

关于http - 特定路由上的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47957988/

相关文章:

javascript - jquery.post() 后端响应,但回调函数参数为空

image - 使用 netcat 提供包含图像的 HTTP 响应

嵌套结构中的 JSON 解码

go - gocron使用参数动态添加和删除任务

node.js - 为什么中间件不能在 Express js 中工作

c# - Ok() 函数 .NET Web API 上的自定义 JSON 序列化

javascript - 如何从 JavaScript 检测 HTTP 状态

go - 如何在 Go 中定义接受任意数量参数的函数类型?

javascript - 如何在 Mongoose 发布更新中间件期间访问更新的文档?

javascript - Node/Express 安全性