如何从express(Node.js)中的app.use中定义的请求对象获取相同的路由URL?

时间:2018-02-23 07:15:38

标签: node.js express

我已定义快递路线如下

    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或请求对象或任何其他解决方案的任何属性都相同。

1 个答案:

答案 0 :(得分:1)

这是一个简单的解决方案,您需要做的是代替req.path 直接检查最终控制器功能中的 req.baseUrl req.route.path

请注意,您不会在中间件中获得 req.route.path

所以问题的解决方案是 req.baseUrl + req.route.path

另一种方法是不是逐个定义路由,维护路由配置,动态创建应用程序路由,然后您将有权访问路由配置,以便您可以从配置中匹配的req.path和模式进行检查。

希望它有所帮助。