我已定义快递路线如下
app.use('/announcement/edit/:AnnouncementId',function(req,res){});
现在我想在调用此路由时从请求对象中获取相同的"/announcement/edit/:AnnouncementId"
。
当我拨打http://localhost:8000/announcement/edit/5a099a855f34fc3f2a7b2a9c并打印日志时如下
console.log(req.path)
但它给了我"/announcement/edit/5a099a855f34fc3f2a7b2a9c"
我希望/announcement/edit/:AnnouncementId
中的req.path
或请求对象或任何其他解决方案的任何属性都相同。
答案 0 :(得分:1)
这是一个简单的解决方案,您需要做的是代替req.path 直接检查最终控制器功能中的 req.baseUrl 和 req.route.path
请注意,您不会在中间件中获得 req.route.path 。
所以问题的解决方案是 req.baseUrl + req.route.path
另一种方法是不是逐个定义路由,维护路由配置,动态创建应用程序路由,然后您将有权访问路由配置,以便您可以从配置中匹配的req.path和模式进行检查。
希望它有所帮助。