我有一个用于这条路由的“路由特定中间件”链,如下所示:
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
调用了——我不知道为什么。mw2
next()
我该怎么做呢?