次のように、このルート用の「ルート固有のミドルウェア」のチェーンがあります。
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]
route 固有のミドルウェアです/some/path
。
これは、次のようなサーバー全体のミドルウェアとは異なります。
server.use(mw1);
server.use(mw2);
定義されたすべてのルートに適用される場所。
今私の問題は、チェーンから抜け出したいということです。success
つまり、で が false の場合mw1
、呼び出されたくありませんmw2
。success
で false の場合はmw2
、ルート関数を呼び出さずにはいられません。現在、 と の両方が呼び出されているかどうかに関係なく呼び出されているように見えますがmw1
、その理由はわかりません。mw2
next()
どうすればこれを行うことができますか?