Node.js nodeJS路由所有请求
我正在写一个nodejs应用程序。 我想将所有请求路由到一些公共API。因为我用的是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 那么,是
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;
}
如果你告诉我更多关于你的用例,也许有一个更优雅的解决方案