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
之前使用这个中间件,因为订单很重要。
原帖是在这里