符合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');
});
答案 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();
});