假设我有两条如下定义的路线。
第一条路线总是被执行,但第二条路线不是。
我应该如何定义路由,以便正确路由 / about .. 的请求?
// First route
router.get('/:id', function (req, res) {
// This will always be executed
})
// Second route
router.get('/about/:name', function (req, res) {
// This will not be executed
})
答案 0 :(得分:1)
撤销订单
路由按照router.get()函数调用的顺序存储。这是路由针对匹配模式进行测试的顺序。如果您的路线可能匹配所有内容,例如/:Id
路线,那么您希望将其放在最后。然后将静态不变的辅助页面放在它之前。
在下面的例子中,我颠倒了顺序,所以我的静态不太具体的路线" / about /"首先检查,如果没有匹配,则express会将请求与下一个路由进行比较以进行URL匹配。
// Executed if match is found
router.get('/about/:name', function (req, res) {
})
// No match found on the above routes so try this one
router.get('/:id', function (req, res) {
})
//TODO: Good place for 404 handler...