有没有办法让它不匹配 /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/