如何在Express.Js中查询请求时找到最初匹配的路由

时间:2014-01-24 15:24:22

标签: regex node.js express routing

我需要在请求时恢复原始路线。原始的具有:变量字符串或正则表达式。基本上我想要一些密钥将所有在一般的高级预处理器中命中相同路由的请求分组。

问题是我的路由与嵌套的应用和路由器相当复杂,因此app.routes.map不包含路由。

有没有办法从请求对象中对路由进行逆向工程,或者是否有一个地方可以获得我可以匹配的全局路由列表并搜索当前请求?

1 个答案:

答案 0 :(得分:1)

特定路线应在req.routedocs)中提供。它包含几个属性,包括req.route.regexp(路由的已编译正则表达式)和req.route.params(匹配参数数组)。

编辑:在分派请求之前,路由不会被附加。

听起来你正试图在发送之前预测路线。在这种情况下,使用app.routes通常可以正常工作。问题是你有自己的路由器的子应用程序。 app.routes仅包含顶级app的路由,而不包含任何子应用的路由。

答案是:没有路线的全局视图。您的子应用程序看起来与父应用程序的中间件完全相同。它不知道或不关心那里有路由。

如果您需要这样做,您必须手动执行此操作,例如,创建一个注册子应用程序的全局数组。