Monday, May 13, 2024
 Popular · Latest · Hot · Upcoming
72
rated 0 times [  76] [ 4]  / answers: 1 / hits: 19624  / 10 Years ago, wed, october 29, 2014, 12:00:00

I'm working in Node.js Project and I want node to act as a proxy for solr



For proxy: I used Node-http-proxy.
the problem is that proxy work excellent in case of get requests but in case of post requests it results in socket hang up exception



Here is a sample of my node code



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
});
})


And this is the error after some time in node console



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)


Any suggestions about the cause of the problem


More From » node.js

 Answers
7

I think the issue comes from the order of middleware. Using bodyParser before httpProxy will break the requests with JSON body, so httpProxy should be used before bodyParser.



You may want to check this for more info about bodyParser.


[#68975] Monday, October 27, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
cristoferjordih

Total Points: 513
Total Questions: 96
Total Answers: 105

Location: Croatia
Member since Fri, Sep 11, 2020
4 Years ago
;