2012-09-18 5 views
1

웹 사이트 집합에서 웹 페이지 스크래핑과 미디어 항목 식별을 수행하기 위해 nodeJS를 몇 가지 추가 모듈과 함께 사용하고 있습니다.Node.js response.write 버퍼 제한 제한

노드 서버는 기본적으로 페이지에 식별 된 모든 항목과 관련 메타 데이터의 JSON 마크 업을 반환합니다. JSON 데이터는 서버 로그에서 볼 수있는대로 올바르게 생성되지만 클라이언트에 쓸 때 JSON 응답이 종료됩니다.

모든 브라우저와 나머지 클라이언트를 사용하여이를 테스트했으며 전체 데이터를 보내지 않고있는 response.write (response, 'utf-8')의 문제를 지적한 것으로 보입니다. 몇몇 이유.

필자는 테스트 케이스에 대한 청킹이 없다는 것을 확인 했으므로 다음 덩어리의 데이터를 기다리는 고객이 적극적으로 연결을 닫는 것에 대한 의문이 없습니다. 이 경우 response.write는 모든 데이터가 클라이언트에 기록되었음을 의미하는 true를 반환합니다.

연결이 끊어 지거나 응답이 잘릴 수있는 원인에 대한 지침은 무엇입니까? 더 작은 크기의 JSON 응답의 경우 클라이언트가 응답을 올바르게 수신합니다.

Code: 
return parseDOM(page, url, function(err, response){ 
      if(err){ 
       res.writeHeader(200, {'Content-Type':'application/json'}); 
       res.end('Error Parsing DOM from ' + url); 
       e.message = 'Error Parsing DOM'; 
       callback(e, req, res, targetUrl);    
       return; 
      } 
      else { 
       if(response){ 
        res.writeHeader(200, {'Content-Type':'application/json', 'Content-Length':response.length}); 
        console.log(response); 
        res.write(response, 'UTF-8'); 
        res.end(); 
        callback(null, req, res, targetUrl); 
        return; 
       } 
      } 
     }); 

답변