快速路由解析命中路由它不应该

时间:2016-07-29 21:33:44

标签: javascript regex express routing

我有以下两条路线:

router.get('/:postId([0-9]*)', handler) 
router.get('/:postId([0-9]*)/like', handler)

第一条路线应仅捕获/posts/4352/之类的网址,而不是/posts/3422/like。不过确实如此。我已经在official route tester尝试了快递,并且它按预期工作。 (尝试粘贴/posts/:postId([0-9]*)/posts/2/like。您会发现它不匹配。)

在我的情况下,什么可能导致这种错误的匹配?

注意:我知道如果我改变顺序而不是它会起作用,但我很好奇为什么会发生这种情况。

1 个答案:

答案 0 :(得分:-1)

翻转顺序,除非使用next(),否则它将在第一次击中时匹配,它不会寻找另一场比赛