app.use()
and middleware can be used for "before" and a combination of the 'close'
and 'finish'
events can be used for "after."
app.use(function (req, res, next) {
function afterResponse() {
res.removeListener('finish', afterResponse);
res.removeListener('close', afterResponse);
// action after response
}
res.on('finish', afterResponse);
res.on('close', afterResponse);
// action before request
// eventually calling `next()`
});
app.use(app.router);
An example of this is the logger
middleware, which will append to the log after the response by default.
Just make sure this "middleware" is used before app.router
as order does matter.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…