nodeJS路由所有请求

我正在编写一个nodejs应用程序。 我想将所有请求路由到一些通用的API。 为此,我正在使用

app.get('*', function(req, res) { /* Do Something */ }); 

在“做某事”部分我想检索req.route.regexp,然后根据这个我会做处理。 我期待req.route.regexp应该是我们来到这里的确切的URL的正则expression式。 但是正如我在'*'中处理这个,所以正则expression式并不等同于req.route.params。

那么有没有什么办法可以根据所有路由(*)的app.get中的req.route.params获取正则expression式。

例如:我有url:“/:val”,因为我期待正则expression式“/ ^ /(?:([^ /] +?))/?$ /我”,但我得到正则expression式的“* “,那我怎么能做到呢?

app.get('*', ...)的处理程序被调用时,最终的路由还没有被匹配,express并不能告诉你后续的路由。

我看到的唯一解决scheme是在所有path中手动调用处理程序:

 app.get('/:val', function (req, res) { if(!myGlobalHandler(req, res)) return; }); function myGlobalHandler(req, res) { if(somethingWrong(req)) { res.send({error: 'uh oh...'}); return false; } return true; } 

如果您告诉我更多关于您的使用案例,也许有一个更优雅的解决scheme。