可以根据多种模式检查 express.js
路由吗?考虑下面的 catch all *
路由。req.route
与此处的 *
匹配。我想在同一个回调中检查一些特殊场景的路由〜而不是在另一个all
或use
中间件中。
app.all('*', (req, res, next) => {
// How do I check if route is a special case like below
if(req.route in ['/foo/:param', '/bar/:param']){}
})
最佳答案
我不确定为什么您要为此忽略单独的 .all
路由,因为在我看来,这是执行这些检查的最佳方式:
app.all('/foo/:param', (req, res, next) => {
req.isFoo = true;
next();
});
app.all('/bar/:param', (req, res, next) => {
req.isBar = true;
next();
});
app.all('*', (req, res, next) => {
if (req.isFoo || req.isBar) { ... }
})
或者,类似于克里斯的回答,有一条路线可以匹配两者:
app.all([ '/foo/:param', '/bar/:param' ], (req, res, next) => {
req.isSpecial = true;
next();
});
关于javascript - Express.js : Match route in catch all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618194/