我定义的快速路线如下
app.use('/announcement/edit/:AnnouncementId',function(req,res){});
现在我想在调用此路由时从请求对象中获取相同的 "/announcement/edit/:AnnouncementId"
。
当我打电话http://localhost:8000/announcement/edit/5a099a855f34fc3f2a7b2a9c时并打印日志如下
console.log(req.path)
但它给了我“/announcement/edit/5a099a855f34fc3f2a7b2a9c”
我想要在 req.path
中或来自请求对象或任何其他解决方案的任何属性中使用相同的 /announcement/edit/:AnnouncementId
。
最佳答案
这是简单的解决方案,您需要做的是代替 req.path 直接检查最终 Controller 函数中的 req.baseUrl 和 req.route.path
请注意,您不会在中间件中获得req.route.path。
所以你的问题的解决方案是req.baseUrl + req.route.path
另一种方法是不逐一定义路由,而是维护路由配置,动态创建应用程序路由,然后您将可以访问路由配置,以便您可以从配置中匹配的 req.path 和模式进行检查。
希望有帮助。
关于node.js - 如何从express(Node.js)中app.use中定义的请求对象获取相同的路由URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48942955/