node.js - 使用 http-proxy-middleware 记录请求/响应主体

标签 node.js http-proxy-middleware

我正在使用 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 body ,据我所知。

任何提示/帮助/引用都非常感谢,请。不确定是否甚至使用 onProxyRes是实现这一点的最佳方式,也许库提供了一些功能来涵盖请求/响应情况。

最佳答案

如果您想要 req.body ,您必须使用库来获取它(或自己从流中构建它)。我推荐 body-parser

关于node.js - 使用 http-proxy-middleware 记录请求/响应主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50294807/

相关文章:

express - NodeJS - 编辑和代理多部分/表单数据请求

node.js - 当 'selfHandleResponse' 为真时,如何传递代理响应?

reactjs - 在 http-proxy-middleware 的 setupProxy.js 中 react 导入环境生成意外标识符

javascript - node-mongodb-native - 游标在每次调用期间返回 null 作为最后一个值

node.js - Azure Node.js Express应用程序scaffold.xml丢失

node.js - Google Cloud 语音识别 grpc 版本与 VSCode Electron 版本不兼容

javascript - 使用 JavaScript 克隆实例化对象?

node.js - 创建 React 应用程序 http-proxy-middleware 不工作

express - 设置具有多个目标的代理服务器?

javascript - 使用 `module` 作为命名空间