【发布时间】:2014-12-25 07:19:23
【问题描述】:
我在 Node.js 项目中工作,我希望 node 充当 solr 的代理
对于代理:我使用了Node-http-proxy。 问题是代理在获取请求的情况下工作得很好,但在发布请求的情况下,它会导致套接字挂起异常
这是我的节点代码示例
var express = require('express');
var router = express.Router();
var http = require('http');
var httpProxy = require('http-proxy')
var proxyOptions = {
host: "127.0.0.1",
port: 8983
};
var proxy = httpProxy.createProxyServer(proxyOptions);
// It works excellent in GET request
router.get('/solr/*', function(req, res) {
proxy.web(req, res, {
target: 'http://' + proxyOptions.host + ':' + proxyOptions.port
});
})
// the socket hang up in post request
router.post('/solr/*', function(req, res) {
console.log('Post Request');
proxy.web(req, res, {
target: 'http://' + proxyOptions.host + ':' + proxyOptions.port
});
})
这是节点控制台一段时间后的错误
Error: socket hang up
at createHangUpError (http.js:1476:15)
at Socket.socketOnEnd [as onend] (http.js:1572:23)
at Socket.g (events.js:180:16)
at Socket.emit (events.js:117:20)
at _stream_readable.js:943:16
at process._tickCallback (node.js:419:13)
关于问题原因的任何建议
【问题讨论】:
-
github.com/nodejitsu/node-http-proxy/issues/… 它似乎可以通过使用 express 来做一些事情
标签: javascript node.js express solr proxy