노드의 한 단계 다운 스트림 인 클라이언트와 Java 서버 사이에서 API 역할을하는 node.js 서버를 작성하고 있습니다. js API. API는 클라이언트로부터 들어오는 HTML 요청을 받아들이고 다시 형식화 한 다음 Java 서버로 보냅니다. java 서버는 node.js API에 대한 응답을 클라이언트에 반환합니다. 이것은 서버가 다운 된 경우를 제외하고는 모두 훌륭하게 작동합니다. 내가 502 또는 302을 잡을 수있는 것처럼, 해당 이벤트를 잡을 필요가 ... 여기 내 코드입니다 :이 노드 서버를 시작하고 Node.js를 서버에 요청을 실행할 때http.request가 응답하지 않는 서버에 발행 될 때 node.js 오류
async.waterfall(
[
function(callback){
var options = { host: 'localhost', port: '8080',
path: '/javaServerWork/' + req.query.foo + '?toDo=' + req.query.bar,
method: 'GET',
headers: { accept: 'application/json' }
};
http.request(options, function(response){
response.on('error', function(exception) { Console.log("error here"); }
if(response.statusCode == '200'){ callback(null, response); }
else if (response.statusCode == '502') { res.send('502'); }
else { res.send('not 200 and not 502'); }
}).end();
},
function(response){
var javaResponse = '';
response.on('error', function(exception){ Console.log("error here");});
response.on('data', function (chunk){ javaResponse += chunk; });
response.on('end', function(){
res.send(javaResponse);
})
}
]
);
하는 다음, 자바 서버에 도달하려고 시도 충돌 Node.js를하고 난 내 콘솔에서 다음과 같은 오류가 발생합니다 :
events.js:69 throw arguments[1]; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoException (net.js:846:11) at Object.afterConnect [as oncomplete] (net.js:837:19)
내가 자바 서버가 다운되면 있도록 "응답"을 잡을 수 없다 할 필요 나는 다른 기능을 실행하거나 노드 충돌없이 클라이언트로 그 사실을 반환 할 수 있습니다! 이것은 매우 간단 할 수도 있지만 작동하는 것을 찾지 못했습니다. 난 process.on ('uncaughtException') 시도, (코드 에서처럼) response.on ('오류') 시도했다.
나는 노드에 익숙하지 않으며 문제가있는 곳을 볼 수 없습니다 ... 어떤 도움을 주시면 감사하겠습니다!
통화 http.request 반환, 서버가 200 [OK] 응답으로 완료됩니까? – D3V
네, 그렇습니다 ... – hkuich