1
在我的本地PC中,我设置了一个Node.js代理服务器,它向node.js RESTful MongoDb服务器发出请求,其中一个位于端口8080处,在端口3000 代理,我可以在REST风格的服务器日志,所有的疑问都正确发送回代理看,但代理挂断引发此错误:套接字挂在http.request到Node.js MongoDb服务器
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)
这就是我建立了我的代理请求:
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();
}
};
这些是发送到MongoDB服务器的选项:
{
"hostname":"127.0.0.1",
"path":"//databases/db1/collections/documents?apiKey=134557676&l=5&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"
}
}