【问题标题】:Avoiding Node.js event loop block while running JSON.stringify [duplicate]运行 JSON.stringify 时避免 Node.js 事件循环块 [重复]
【发布时间】:2016-03-06 11:27:55
【问题描述】:

我有一个庞大的数据结构需要转储到文件中:

fs.writeFile('dump.json', JSON.stringify(bigData));

生成的文件接近 100MB,生成需要几秒钟。当JSON.stringify 运行时,它阻塞了事件循环,我的服务器不处理任何请求。

有没有办法以某种方式拆分JSON.stringify 电话?我的bigData var 是一个对象数组,所以我可能会编写一个函数来分别序列化它们,然后将 JSON 拼接在一起,以确保可以在两者之间处理请求 - 但是是否有任何已经存在的解决方案(外部模块没问题)?

【问题讨论】:

    标签: json node.js serialization stringify


    【解决方案1】:

    试试stream-json-stringify。它应该可以解决问题。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @AhmedAshour - 你不能认真地期望整个模块源被粘贴到答案中。该链接指向模块的主页,这很好。
    • 至于模块本身,它写入了一些数据,但不是全部——我只得到了一些 50MB 而不是全部 100MB 的数据。但是很难追踪丢失的东西!
    • 我是新来的。还不知道规矩。只是想帮忙。无论如何,如果包中有错误或问题,为什么不向所有者发送消息? (为了您和将来使用此软件包的其他人)。
    • 感谢您为我指明正确的方向 - 我在 stackoverflow.com/a/13504078/979 找到了似乎有效的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多