웹 사이트 집합에서 웹 페이지 스크래핑과 미디어 항목 식별을 수행하기 위해 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;
}
}
});