我正在尝试使用 express 和 request 进行代理模块。 This post展示了如何轻松地 pipe()
将请求发送到响应:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
//app.use(express.multipart());
app.use('/api', function(req, res) {
var url =proxyUrl + req.url;
req.pipe(request(url)).pipe(res);
});
它对于所有 GET 请求都非常有效。但是在 POST 请求上它失败了。无法弄清楚发生了什么,因为它只会遇到超时。 POST 请求在代理上运行。
我做错了什么?我可以调试请求吗?我已尝试以下操作,但文件为空:
req.pipe(fs.createWriteStream("test.txt"));
最佳答案
我们也遇到了同样的问题,这是因为express.json()。禁用 json 解析器后,它工作正常。但这不是闲置的解决方案,因为您可能需要 json 解析器。
关于node.js - 在 Node 中使用 request 和express 制作代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23041677/