如何在请求发出之前拦截对 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();
});
我正在使用由其他人启动的 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();
});