title: Socket hang up on http.request to a Node.js MongoDb server
body: <p>In my local pc I've set up a Node.js proxy server who makes request to a node.js RESTful MongoDb server, one is at port 8080 and the proxy at port 3000.
  I can see in the RESTful server log that all the queries are sent back correctly to the proxy, but the proxy hang up throwing this error:</p>
  
  <pre><code>    events.js:72
              throw er; // Unhandled 'error' event
                    ^
      Error: socket hang up
          at createHangUpError (http.js:1472:15)
          at Socket.socketOnEnd [as onend] (http.js:1568:23)
          at Socket.g (events.js:180:16)
          at Socket.EventEmitter.emit (events.js:117:20)
          at _stream_readable.js:920:16
          at process._tickCallback (node.js:415:13)
  </code></pre>
  
  <p>this is how I built my proxy request :</p>
  
  <pre><code>      var proxy = function(req, res, next) {
          try {
            var options = mapRequest(req);    
            var dbReq = http.request(options, function(dbRes) {
              var data = "";
              res.headers = dbRes.headers;
              dbRes.setEncoding('utf8');
  
              dbRes.on('data', function(chunk) { 
                data = data + chunk;
               });
  
              dbRes.on('end', function() {
                res.header('Content-Type', 'application/json');
                res.statusCode = dbRes.statusCode;
                res.httpVersion = dbRes.httpVersion;
                res.trailers = dbRes.trailers;
                res.send(data);
                res.end();
              });
  
            });
  
            dbReq.end(JSON.stringify(req.body));
  
          } catch (error) {
            console.log('ERROR: ', error.stack);
            res.json(error);
            res.end();
          }
         };
  </code></pre>
  
  <p>and these are the options sent to the MongoDB server:</p>
  
  <pre><code>    {
        "hostname":"127.0.0.1",
        "path":"//databases/db1/collections/documents?apiKey=134557676&amp;l=5&amp;sk=0",
        "method":"GET",
        "port":"8080",
        "headers":{
                  "host":"127.0.0.1",
                  "connection":"keep-alive",
                  "accept":"application/json, text/plain ",
                  "x-xsrf-token":"VPDlgN2iMWU2IXPIPH0aiwS5",
                  "user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36",
                  "dnt":"1",
                  "referer":"http://localhost:3000/documents",
                  "accept-encoding":"gzip,deflate,sdch",
                  "accept-language":"it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4",
                  "cookie":"XSRF-TOKEN=VPDlgN2iMWU2IXPIPH0aiwS5; connect.sess=s%3Aj%3A%7B%22passport%22%3A%7B%22user%22%3A%225298bfa9e4b070e1c60fd84f%22%7D%2C%22_csrf%22%3A%22VPDlgN2iMWU2IXPIPH0aiwS5%22%7D.wc85bNSpJIl7KnCHOUXiG5V2e7SI9XR9EctByTtqhu4"
                 }
      }
  </code></pre>