使用路径参数定义多个Express.js路由

时间:2011-10-17 13:47:11

标签: node.js express

如何使Express.js与路径“/1.1.1”和“/ login”区别开来?

我使用以下代码:

app.get('/:x?.:y?.:z?', function(req, res){

...

app.get('/login', function(req, res){

1 个答案:

答案 0 :(得分:13)

路线按照添加顺序执行。因此,如果您希望登录路由优先,请先定义它。

否则,如果您想根据路线做出决定,可以从处理程序内部调用next()函数,如下所示:

app.get('/:x?.:y?.:z?', function(req, res, next){ // <== note the 'next' argument 
    if (!req.params.x && !req.params.y && !req.params.z) {
        next(); // pass control to the next route handler
    }
    ...
}

来自Express guide:“对于定义了相同路径的几条路线也是如此,它们将按顺序执行,直到一个不调用next()并决定响应。”