Node.js nodeJS路由所有请求

Node.js nodeJS路由所有请求,node.js,express,routes,Node.js,Express,Routes,我正在写一个nodejs应用程序。 我想将所有请求路由到一些公共API。因为我用的是 app.get('*', function(req, res) { /* Do Something */ }); 在“dosomething”部分,我想检索req.route.regexp,然后在此基础上进行处理。我希望req.route.regexp应该是我们来到这里的确切URL的regexp。但由于我在“*”中处理这个问题,所以正则表达式并没有给我等价的req.route.params 那么,是

我正在写一个nodejs应用程序。 我想将所有请求路由到一些公共API。因为我用的是

 app.get('*', function(req, res) {
   /* Do Something */
 });
在“dosomething”部分,我想检索req.route.regexp,然后在此基础上进行处理。我希望req.route.regexp应该是我们来到这里的确切URL的regexp。但由于我在“*”中处理这个问题,所以正则表达式并没有给我等价的req.route.params

那么,是否有任何方法可以根据所有路由(*)的app.get中的req.route.params获取regexp

例如:我的url为:“/:val”,因此我希望使用regexp “/^/(?:([^/]+?)/?$/i”,但我正在获取“*”的regexp,
那么我如何才能做到这一点呢?

当调用
app.get('*',…)
的处理程序时,最终的路由尚未匹配,express可能无法告诉您后续的路由

我看到的唯一解决方案是在所有路由中手动调用处理程序:

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;
}
如果你告诉我更多关于你的用例,也许有一个更优雅的解决方案