node.js - 在 Node 中使用 request 和express 制作代理

标签 node.js http proxy request

我正在尝试使用 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/

相关文章:

javascript - 类型 '(s: string) => string' 不可分配给类型 '<T>(t: T) => T'

javascript 映射到 Firestore -> 错误 : Value for argument "data" is not a valid Firestore document. 输入不是纯 JavaScript 对象

javascript - NodeJS 服务器在检索部分时返回 505/404 错误

node.js - Node可以在多线程中运行吗?

PHP。将请求按原样转发到另一台服务器

svn - 如果 svn 轮询失败,则不要执行 jenkins 作业

http - "Vary: Accept"HTTP header 的作用是什么?

javascript - 强制 AJAX 请求与服务器重新验证缓存,而不完全重新加载

angularjs - 如何在 HTTP 请求上设置模块特定的自定义 header ?

jquery - 为 JSON 创建 Rails 代理