javascript - Express.js : Match route in catch all

标签 javascript node.js express

可以根据多种模式检查 express.js 路由吗?考虑下面的 catch all * 路由。req.route 与此处的 * 匹配。我想在同一个回调中检查一些特殊场景的路由〜而不是在另一个alluse中间件中。

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/

相关文章:

javascript - JS 复杂的范围按摩

node.js - Heroku 日志 "npm err"

node.js - 如何将信息从 NodeJS 服务器发送到客户端?

javascript - 类型错误 : Request path contains unescaped characters

JavaScript 注册功能

javascript - Ajax:将内容从另一个div加载到div中

javascript - 有人可以解释一下这个功能是如何工作的吗?

linux - NPM 无法全局安装 browserify

Node.js 命令行工具在记事本中打开而不是执行

javascript - 构建 Node.js 路由和 API 调用