路线优先顺序表示3对4

时间:2016-11-08 22:59:27

标签: node.js express

符合express3的书。在下列情况下,http://localhost:3000/abcd将始终打印" abc *",即使下一条路线也与模式匹配。

对于express4,我的问题是以同样的方式工作吗?

app.get('/abcd', function(req, res) {
    res.send('abcd');
});
app.get('/abc*', function(req, res) {
    res.send('abc*');
});

撤销订单会使其打印" abc *":

app.get('/abc*', function(req, res) {
    res.send('abc*');
});
app.get('/abcd', function(req, res) {
    res.send('abcd');
});

1 个答案:

答案 0 :(得分:0)

匹配路由的第一个路由处理程序是被调用的路由器。这就是Express在所有最新版本中的工作原理。您通常应该指定从更具体到更不具体的路线,然后更具体的路线将首先匹配,而不太具体的路线将捕获其余路线。

如果您希望处理程序查看所有匹配项,然后将其传递给其他处理程序,则通常会使用中间件:

// middleware
app.use("/abc*", function(req, res, next) {
    // process request here and either send response or call next()
    // to continue processing with other handlers that also match
    next();
});