1

我正在尝试读取和解析 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);
        });
    }
}

最终,我想用这些文件中的所有解析数据构建一个累积结果对象,但到目前为止,我尝试过的一切都阻止我解析任何和所有文件。建议?指导?

4

1 回答 1

0

您可以尝试 JSONStream 存储库中的“memory-leak”分支。这个分支修复了内存泄漏,但是你不能使用“..”操作符。

链接到分支

于 2014-11-28T06:54:43.403 回答