2013-07-20 24 views

答えて

13

pauljzは、ここで私が正しく理解していれば、クライアントが完了したときに、このイベントがトリガされますミドルウェア

module.exports = function() { 
    return function(req, res, next) { 
    req.on("end", function() { 
     // some code to be executed after another middleware 
     // does some stuff 
    }); 
    next(); // move onto next middleware 
    } 
} 
あなたのメインアプリで

expressApp.use(require("./doneMiddleware")); 
expressApp.use(express.logger()); 
expressApp.use(express.static..... 
+0

私が正しく理解していれば、クライアントが要求/データをサーバーに送信するのを完了するとこのイベントが発生します。しかし、私が望むのは、response.renderやresponse.redirectなどを呼び出した後、ミドルウェアを実行する必要があるということです。 –

+1

いいえ、このイベントは、応答の送信を含め、要求が完了した時点で発行されます。レンダリング/リダイレクトがresponse.endを呼び出す限り、関連するリクエストは終了します。 –

+0

@SelvarajMA 以下の方法が良いかもしれません:http://stackoverflow.com/a/21858212/673014 – pronskiy

3

req.on('end', function() {...});へのバインディングが有効かどうかを確認してください。

+0

の一例であることに拡大するが、基本的な方法を与えました要求/データをサーバに送信する。しかし、私が望むのは、response.renderやresponse.redirectなどを呼び出した後、ミドルウェアを実行する必要があるということです。 –

関連する問題