0

我在这里所做的是尝试用其他东西替换 JSON.stringify() 以避免 RangeError。我找到了下面的方法。

这是我的代码:(我使用big-json模块,这个模块为 stringify 实现了json-stream- stringify)

const data = generateData();       
                   
const stringifyStream = json.createStringifyStream({  
    body: data
});

stringifyStream.on('data', function(str) {
    console.log(str.toString());
})

我尝试打印str,它会逐行打印字符串类型的数据,我的问题是:如何将完整str 的写入文件?我试图在fs.writefileSync()之后添加console.log(),它只会写在str. 对不起,我是流和 node.js 的新手。Hvae 不知道如何解决它。

另一个问题是,我能找到一种方法来重新格式化输出字符串JSON.stringify(data, null, 2)吗?

仅供参考:数据是一个非常深的对象。没有循环,但可能有重复的部分。而且我更喜欢保持一切不变而不是修剪。

非常感谢这里的任何帮助!感谢您的时间。

4

1 回答 1

0

您是否尝试过将 JSON.stringify 与 fs.writeFileSync 分开?只是要知道其中一个实际上有问题。

如果是 JSON.stringify 我建议您将对象分成多个或过滤您使用的对象。你可以做任何事情来减少实际数据。我们不知道数据到底是什么,所以我无法对此做出假设,但你通常不会遇到这些问题,如果它是由数据太大引起的,那么你做错了!

如果问题是 fs.writeFileSync 并且您将 JSON 字符串化,然后尝试使用 fs.createWriteStream 写入数据。

于 2020-07-11T02:12:43.047 回答