我在这里所做的是尝试用其他东西替换JSON.stringify(),以避免RangeError。我找到了下面的方法。
这是我的代码:(我使用big-json模块,这个模块实现json-stream-stringify作为stringify)
const data = generateData();
const stringifyStream = json.createStringifyStream({
body: data
});
stringifyStream.on('data', function(str) {
console.log(str.toString());
})我试着打印str,它会逐行打印字符串类型的数据,我的问题是:如何将完整的str写入文件?我尝试在console.log()之后添加fs.writefileSync(),它只会写入str的最后一行。抱歉,我是第一次接触stream和node.js。我不知道如何修复它。
另一个问题是,我能否找到像JSON.stringify(data, null, 2)一样重新格式化输出字符串的方法?
仅供参考:数据是一个非常深入的对象。没有循环,但可能有重复的部分。我更喜欢保持一切不变,而不是修剪。
真的很感谢大家的帮助!谢谢您抽时间见我。
发布于 2020-07-11 10:12:43
你有没有试过从fs.writeFileSync中分离出JSON.stringify?只是想知道一个人到底是不是有问题。
如果它是JSON.stringify,我建议你将对象分成多个,或者过滤你使用的对象。尽你所能减少实际数据。我们不知道de data到底是什么,所以我不能对此做出假设,但一般来说,你永远不会有这些问题,如果它是由太大的数据引起的,那么你就做错了!
如果问题出在fs.writeFileSync上,并且您已经对JSON进行了字符串化,那么可以尝试使用fs.createWriteStream来写入数据。
https://stackoverflow.com/questions/62844017
复制相似问题