我正在尝试读取和解析node中的大约12个大型(从100mb+到500mb+) JSON文件。我尝试使用JSONStream (许多人建议将其作为此问题的解决方案),以防止出现以下错误:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory然而,我仍然得到这个错误。这是我第一次尝试使用这样的流式文件阅读器,所以我不确定问题出在哪里。现在,我拥有的代码是:
for (var i = 0; i < jsonFileArray.length; i++) {
if (jsonFileArray[i].match(/\.json$/)) {
var stream = fs.createReadStream(dirPath + jsonFileArray[i]).pipe(JSONStream.parse(['records', true, 'Categories']));
stream.on('data', function(data) {
console.log('received:', data);
});
}
}最终,我想用来自这些文件的所有解析数据构建一个累积的结果对象,但是到目前为止,我尝试过的一切都阻止了我能够解析任何和所有的文件。有什么建议吗?指导?
发布于 2014-11-28 14:54:43
您可以尝试使用JSONStream存储库中的"memory-leak“分支。此分支修复内存泄漏,但您不能使用"..“操作符。
https://stackoverflow.com/questions/26737422
复制相似问题