2013-06-18 3 views
0

원격 apis에 데이터를 게시하고 응답을 가져 오는 노드 앱이 있습니다. 그것은 잘 작동하지만, 시간에 노드 서버 충돌을 다음과 같은 errror 생성 내가 검색 좀하고 (때문에) 시간 초과 일에 발생하지만 난 이것을 극복하는 방법에 대한 정말 모르겠습니다 것을 발견소켓 교수형 및 노드 충돌

events.js:71 
throw arguments[1]; // Unhandled 'error' event 
^ 
Error: socket hang up 
at createHangUpError (http.js:1264:15) 
at Socket.socketCloseListener (http.js:1315:23) 
at Socket.EventEmitter.emit (events.js:126:20) 
at Socket._destroy.destroyed (net.js:358:10) 
at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

합니다.

if(request.body.company=="CQ") 
    { 
     var postData={firstName:request.body.firstname,lastName:request.body.lastname,Email:request.body.email,DayPhoneNumber:request.body.daytimePhone,Address1:request.body.addressOne,city:request.body.city,state:request.body.State,postalCode:request.body.zip,AreaOfIntrest:request.body.areaOfInterest,VendorLocationId:"38404",Notes:request.body.Notes,GraduationYear:request.body.graduationYear,AffiliateLocationId:"12345",LocationId:"12345",CampaignId:"12345"}; 

     var options={hostname:'webservices.someapi.com', path:'/ILM/Default.ashx?'+qs.stringify(postData), method:'GET'}; 

     var req = http.request(options, function(res) { 

     res.on('data', function (chunk) { 

     edModel.find({$and:[{daytimePhone:request.body.daytimePhone},{company:"CQ"}]},function(err,count){ 
     if(count.length==0) 
     { 
       var sr='RESPONSE: ' + chunk; 
       if(sr.indexOf('status="Error"')==-1) 
       { 
        request.body.leadid=sr; 
        var sr=sr.slice(sr.indexOf("leadid")); 
        sr=sr.slice(0,sr.indexOf(">")); 

        edDoc=new edModel(request.body); 
        edDoc.save();  
        response.send({response:sr}); 
       } 
       else 
       { 
        response.send({response:sr}); 
       } 
     } 
     else 
     { 
      response.send({response:"<span style='color:red'>Duplicate Lead.<br> A lead with this number already exists in our database</span>"}); 
     } 

    }); 


     }); 

     }); 

     // write data to request body 
     req.write('data\n'); 
     req.end(); 
    } 

나는 server.js 파일에 여러 개의 같은 경우 다른 조건이 있습니다 여기 내 server.js에서 필요한 코드입니다.

답변

0

노드 0.8.20에이 문제에 대한 버그가있었습니다. http.request 대신 http.get을 사용해보십시오. 또는 해당 버전을 사용하는 경우 0.8.20을 사용하지 마십시오.

+0

나중에 참조 할 수 있도록이 버그에 대한 링크를 제공 할 수 있습니까? – Jimbo

+0

나는 0.8.16을 사용하고있다. – beNerd