【发布时间】:2020-12-22 04:40:33
【问题描述】:
我正在使用 Nodejs 从一个非常大的 JSON 对象 (1GB) 创建一个 JSON 文件。为了避免内存问题,我使用 createWriteStream :
var writeStream = fs.createWriteStream('./output/outPut.json')
使用Builder(自定义函数)后会返回一个大对象JSON。
最后一步是创建这个文件:
writeStream.write(JSON.stringify(search_index), (err) => {
if (err) throw err
console.log('File Ready... ')
})
但不幸的是,JSON.stringify 不能与这么重的 Object 一起使用
JSON.stringify 抛出 RangeError: Invalid string length for large objects
请问这个问题有解决办法吗?
【问题讨论】:
-
创建这么大的文件的目的是什么。你能把信息分成更小的文件吗?
-
@Craicerjack 我正在使用elasticlunr JS在我的应用程序中构建搜索模块,这个文件是搜索索引,不幸的是,它不能分成多个文件
-
这能回答你的问题吗? Parse large JSON file in Nodejs
-
@RishabhDeepSingh 这个答案是关于如何读取大型 JSON 而不是创建它
-
searchIndex是数组还是对象?
标签: javascript node.js v8 fs