有没有办法让它与/api
和/assets
不匹配?
router.use("/:group", groupRouter);
我尝试了以下但是没有用。
router.use("/:group(!(api|assets))", groupRouter);
另外,我尝试在这里使用正则表达式,但节点给了我一个错误,说它期望回调而不是正则表达式。
注意:显然.use
也没有捕获group
,但在我的情况下这不是必需的。我只需要它来匹配除了几个单词之外的所有内容。
答案 0 :(得分:4)
我使用嵌套中间件来解决这个问题。
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();
}
});
答案 1 :(得分:0)
尝试使用此功能:
router.use("/:group((?!(api|assets)\w+))", groupRouter);