3
그래, 아래의 예에서는 서버에 무엇인가를 요청합니다. 응답이 돌아 오면 JSON을 구문 분석하고 mongodb에 데이터를 추가합니다.http 요청에서 응답을받지 못한 경우 node.js에서 어떻게 알 수 있습니까?
그러나 응답이 없으면 분명히 이벤트가 발생하지 않습니다. 어떻게하면 응답을받지 못한 경우 오류가 발생하지 않고 요청을 취소하고 함수를 호출 할 수 있도록 시간 초과를 추가 할 수 있습니까? (나는 이메일을 보내는 함수를 호출하도록 할 것이다.)
고마워!
var req = https.request(options, function(res) {
res.on('data', function(d) {
if(d) buffer += d;
});
res.on('end', function(){
var validResponse = true;
var object;
try {
object = JSON.parse(buffer);
} catch (err) {
console.log('response: '+ buffer);
console.log('error in response: ' + err);
validResponse = false;
}
if(validResponse) {
db.stuff.update(
{stuff: "MyStuff"},
{stuff: "MyStuff", foo: object.bar},
{upsert: true},
function() {
var time2 = new Date();
console.log('db successfully updated db at '+time2.toTimeString());
}
);
}
});
});
고마워요! BTW, req.on ('socket', function (socket) {socket.setTimeout (10000); socket.on ('timeout', function() {socket.destroy();}과 같은 일을하는 것이 적절한시기는 언제입니까?)})); 너가 여기서 제안한 것과는 반대되는거야? (주석에 코드를 삽입하는 것에 대해 유감스럽게 생각합니다.) – CommaToast
둘 다 동일합니다. req.setTimeout은 더 짧은 방법입니다. – vinayr