Hook 如何在任何 req 之前和任何 res 之後執行程式碼

app.use() 和中介軟體可以用於之前,並且 closefinish 事件的組合可以用於之後

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 之前使用這個中介軟體,因為訂單很重要。

原帖是在這裡