ExpressJS路由器URL匹配

时间:2017-01-18 15:30:39

标签: express

下面的

代码,当我访问这个http://localhost/的网址时。它可以匹配第一个,但是当我访问http://localhost/detail-999时,它再次与第一个匹配。它与第二个不匹配。

我希望当我访问http://localhosthttp://localhost/list-1-1时可以匹配第一个,并且访问http://localhost/detail-999可以正确匹配第二个...

我不知道解决这个问题......

router.get('/|/list-:type-:page', function (req, res) {});
router.get('/detail-:itemId', function (req, res) {});

2 个答案:

答案 0 :(得分:1)

你需要的只是把它包装成这样的括号:

app.get('(/|/list-:type-:page)', function (req, res) {

});

答案 1 :(得分:0)

试试这个:

router.get('/list/:type/:page', function (req, res, next) {});
router.get('/detail/:itemId', function (req, res, next) {});

设置路线可能会有问题。如果您有无法更改的参数,那么您应该在路线的操作方法中处理破折号,然后执行req.params.list_name.split('-')