Hook 如何在任何 req 之前和任何 res 之後執行程式碼
app.use()
和中介軟體可以用於之前,並且 close 和 finish 事件的組合可以用於之後。
app.use(function (req, res, next) {
function afterResponse() {
res.removeListener('finish', afterResponse);
res.removeListener('close', afterResponse);
// actions after response
}
res.on('finish', afterResponse);
res.on('close', afterResponse);
// action before request
// eventually calling `next()`
next();
});
...
app.use(app.router);
一個例子是記錄器中介軟體,預設情況下會在響應後追加到日誌中。
只要確保在 app.router
之前使用這個中介軟體,因為訂單很重要。
原帖是在這裡