2012-06-07 4 views
0

매우 큰 데이터 청크 (JSON.stringify의 결과)를 파일에 작성하려고합니다. 프로세스 중에 exit 이벤트를 저장하기 때문에 동기화가 필요합니다. 내가 fs.createWriteStream을 (시도했습니다node.js와 매우 큰 데이터 청크 쓰기

FATAL ERROR: JS Allocation failed - process out of memory 

을),하지만 작동하는 것 같다되지 않습니다) (fs.writeFileSync를 사용하는 경우 그러나, 노드는이 메시지가 발생합니다. 이 코드는 중간 데이터 양의 0 바이트를 출력하고 큰 값으로 동일한 오류를 발생시킵니다.

+0

왜 스트림이 fs.createWriteStream()이 실패한 이유를 설명 할 수 있습니까? – Mustafa

+0

@Mustafa 나도 몰라. 최종 파일에는 아무 것도 들어 있지 않습니다. –

+0

@ NisonMaël 문자열의 길이는 얼마입니까? FS 작업이 실패하고'JSON.stringify'가 아닌 것은 확실합니다. – elmigranto

답변

0

내 문제는 JSON.stringify에있었습니다. 데이터가 너무 커서 고유 한 자바 스크립트 문자열에 저장되지 않았습니다.

줄 당 하나의 속성을 직렬화하여이 문제를 해결했습니다. 따라서 JSON.stringify에 대한 X 호출이 있습니다. 여기서 X는 내 개체의 속성 수입니다. 내 디시리얼라이저는 모든 속성을 추가하여 개체를 다시 작성합니다.