gpt4 book ai didi

node.js - webpack 配置代理请求正文日志记录

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:34 24 4
gpt4 key购买 nike

Webpack 开发服务器代理配置文档见此处:

https://webpack.js.org/configuration/dev-server/#devserver-proxy

说它使用http-proxy-middleware:

https://github.com/chimurai/http-proxy-middleware#http-proxy-events

使用上面链接中记录的 onProxyRes 函数,我执行以下操作:

function onProxyRes(proxyRes, req, res) {
proxyRes.headers['x-added'] = 'foobar'; // add new header to response
delete proxyRes.headers['x-removed']; // remove header from response
console.log(req.headers) // log headers
console.log(req.body) // undefined
console.log(proxyReq.body) // undefined
}

我的问题,尽管其他一切都很好 - 我无法记录请求正文 - 它返回 undefined

有人知道如何读取请求正文以进行调试吗?我是否需要使用 npm body-parser 模块?如果是这样,怎么办?谢谢

最佳答案

我使用body-parser解决了类似的问题。

我试图在将请求正文发送到服务器之前修改它,这导致请求挂起,可能是因为更改正文后,请求的 Content-Length 不再匹配(导致它被截断)。

解决方案是在写入新的请求正文之前“调整大小”Content-Length:

var bodyParser = require('body-parser');   

devServer: {
before: function (app, server) {
app.use(bodyParser.json());
},
onProxyReq: function (proxyReq, req, res) {
req.body = {
...req.body,
myProperty: "myPropertyValue"
};

const body = JSON.stringify(req.body);

proxyReq.setHeader('Content-Length', Buffer.byteLength(body));

proxyReq.write(body);
}
}

不确定,但在您的情况下,可能是请求因添加/删除 header 而被截断,导致其挂起。

关于node.js - webpack 配置代理请求正文日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com