我使用http-proxy-middleware来实现透明代理。
我想做请求/回复检查。我的意思是,我想在文本文件中打印请求/响应通过代理,而不对它们进行任何修改。
到目前为止,我所使用的是类似的东西(简化版):
app.use('/proxy/:service/', proxy({
pathRewrite: function(path, req){
...
},
router: function(req) {
...
},
onProxyRes: function(proxyRes, req, res) {
log("Req URL: " + req.originalUrl);
log("Response status code: " + proxyRes.statusCode);
}
}));
(log()
是一个帮助函数,它使用字符串作为输入并打印出来是我的日志文件)
因此,基本上我使用onProxyRes
拦截响应并在那时进行记录。问题是,我只能使其适用于URL,状态代码,标题等内容,但我无法在req
和/或resProxy
中找到有效负载正文对象。
我已阅读有关如何获取res
正文here的信息。但是,它似乎是一个复杂的解决方案(需要设置一个data
事件处理程序)。据我所知,它并没有覆盖req
身体。
请提供任何提示/帮助/参考。不确定即使使用onProxyRes
是实现此目的的最佳方式,也许库提供了一些功能来覆盖请求/响应案例。