我有一个用于这条路由的“路由特定中间件”链,如下所示:
var express = require('express');
var server = express();
var mw1 = function(req, resp, next) {
//do stuff
if (success) {
next();
} else {
req.connection.destroy(); //without calling next()
}
};
var mw2 = function(req, resp, next) {
//do stuff
if (success) {
next();
} else {
req.connection.destroy(); //without calling next()
}
};
server.post('/some/path', [mw1, mw2], function(req, resp) {
//write response
});
[mw1, mw2]是特定于路由的中间件/some/path。
这与服务器范围的中间件不同,如下所示:
server.use(mw1);
server.use(mw2);
它适用于所有定义的路由。
现在我的问题是我想退出链条。即如果success是假的mw1,我不希望mw2被调用。如果success是 false in mw2,我不会不调用路由函数。目前,无论是否被调用,两者似乎都被mw1调用了——我不知道为什么。mw2next()
我该怎么做呢?