我正在尝试读取并解析节点中大约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);
});
}
}
最终我想用这些文件中的所有解析数据构建一个累积结果对象,但到目前为止,我所尝试的一切都阻止了我能够解析任何和所有文件。建议?指导?
答案 0 :(得分:0)
您可以尝试&#34;内存泄漏&#34;来自JSONStream存储库的分支。这个分支修复了内存泄漏,但你无法使用&#34; ..&#34;操作