问题
使用代理node-http-proxy代理,然而get请求正常,而到了POST请求和PUT请求则代理超时,甚至报错为socket hang up。
原因
使用了express中有个中间件为body-parser,不知道干嘛的。
解决
注释此中间件,即可运行正常
参考:
https://github.com/nodejitsu/node-http-proxy/issues/180
https://github.com/nodejitsu/node-http-proxy/issues/955
后续,干掉是干掉了,但是请求其他资源有问题,我但是场景是api都是代理所以没有此问题,但是我看到了issue之后,解决方案是在use body-parser之前把代理的地址代理出去且end它;或者使用buffer设置
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 9000,
buffer: buffer
});
未经测试,不知可行,但是issue中到处是这种问题,可以多看看别人怎么解决。