Jon*_*han 5 proxy json node.js express
我使用以下node-express代码来代理从Web服务器到API服务器的请求:
app.use('/api', function(req, res) {
var url = 'http://my.domain.com/api' + req.url;
req.pipe(request(url)).pipe(res);
});
Run Code Online (Sandbox Code Playgroud)
这适用于任何动词(get,post等等)的简单请求,但是一旦我发送'Content-type': 'application/json'请求,它就会挂起pipe.
为什么这个简单的node-express代理代码挂在json请求上?
如何改变它来支持它们?
msc*_*dex 17
您需要在 此行之前移动该自定义中间件函数,以便在任何正文解析器之前执行它.这可以确保请求数据仍然存在request(url)于您的自定义中间件中.
悬挂的原因目前是req没有数据写入request(url)(因为身体解析中间件已经读过所有的请求数据,并解析它),所以它永远不会调用.end()的request(url)流.这意味着请求url永远不会完成,因为它只是坐在那里等待它永远不会得到的数据.
| 归档时间: |
|
| 查看次数: |
5341 次 |
| 最近记录: |