node.js - 从 expressjs 路由路径中排除单词

标签 node.js express

有没有办法让它不匹配 /api/assets

router.use("/:group", groupRouter);

我尝试了以下方法,但没有用。

router.use("/:group(!(api|assets))", groupRouter);

另外,我尝试在这里使用正则表达式,但 Node 给了我一个错误,说它需要一个回调而不是正则表达式。

注意:显然 .use 也不会捕获 group,但在我的情况下这不是必需的。我只需要它来匹配除几个单词之外的所有内容。

最佳答案

我使用嵌套中间件来解决这个问题。

router.use("/:group", function(req, res, next) {
  var excludes = ["api", "assets"];
  if (excludes.indexOf(req.params.group) !== -1) return next();
  else {
    router.use("/"+req.params.group, groupRouter);
    next();
  }
});

关于node.js - 从 expressjs 路由路径中排除单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24581889/

相关文章:

mysql - 序列化范围类型和解析器

javascript - package.json 脚本中的 Node 支持哪些类似 shell 的语法?

javascript - 禁用 NestJS 中所有 POST 的状态 201

javascript - 如何从nodeJS中的子文件中获取与父文件夹相同的目录中的文件的绝对路径

javascript - NodeJS MongoDB 动态查询

javascript - 范围错误: Invalid status code: 0 node js

mysql - 在 sequelize 中声明关系?

javascript - 如何使用 Firebase 上传多个文件?

node.js - 是否有部署架构以使用微服务模型发送 SMS 的最佳方法?

node.js - 运行快速代码时出现 ECONNREFUSED 错误