我正在尝试读取和解析 node.js 中大约 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);
});
}
}
最终,我想用这些文件中的所有解析数据构建一个累积结果对象,但到目前为止,我尝试过的一切都阻止我解析任何和所有文件。建议?指导?