用param覆盖静态路由的快速路由

时间:2016-11-20 23:55:34

标签: node.js express routes

我有一个如下代码

app.get('/all', callback2);
app.get('/:id', callback);

/:id覆盖了路线/all

2 个答案:

答案 0 :(得分:2)

除了避免使用可能不明确的路线之外,我能想到的唯一解决方案是实现这样的一条路线:

app.get('/:id', function(req, res) {
    if (req.params.id === 'all') {
        // do what you would do for /all
    } else {
        // do what you do for /:id
    }
}

答案 1 :(得分:0)

解决问题的一种好方法,尽管最好的方法不是定义

app.get('/all', callback2);

之前

app.get('/:id', callback);

现在路由器将先检查第一个路由,然后再检查其他路由