如何在请求发出之前拦截对 NodeJs (Express 4) 中端点的响应

How to intercept the response of a request to an endpoint in NodeJs (Express 4) before it goes out

我正在使用由其他人启动的 Typescript 开发一个 NODE JS 项目,如果来自某些端点的响应成功,我需要触发一个操作,因此我需要在将此响应发送到实体之前拦截该响应正在提出请求。

请求发出,先通过别人的中间件,然后到控制器,完成后,我需要捕获它。

控制器返回响应的方式是这样的

return response.status(200).json(data);

我该如何解决这个问题?

您可以在发送响应的任何请求处理程序之前添加一些中间件,这些响应会监视响应流对象上的 finish 事件以跟踪请求何时完成:

app.use((req, res, next) => {
    // listen for when the request is done
    res.on('finish', () => {
        console.log(`request for ${req.url} finished with status ${res.statusCode}`);
    });
    next();
});