2014-07-05 3 views
4

/api/assets과 일치하지 않는 방법이 있습니까?expressjs 경로 경로에서 단어 제외

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

나는 다음을 시도했지만 작동하지 않았다.

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

또한 여기 정규식을 사용했지만 노드가 나에게 오류를주었습니다. 정규식이 아닌 콜백이 필요하다고 말했습니다.

참고 : 분명히 .usegroup을 캡처하지 않지만 내 경우에는 필요하지 않습니다. 나는 그저 몇 마디를 제외한 모든 것을 맞추기 만하면됩니다.

+4

왜 나는 downvoted가 되었습니까? 의견을 보내 주시면 문제를 개선하고, 명확하게 말하고/또는 수정 해드릴 수 있습니다. –

+0

아직도이 포스트가 downvoted ... 얻는 지 혼동하는 –

답변

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(); 
    } 
});