【发布时间】:2021-06-22 12:35:02
【问题描述】:
直截了当,我在 Node.js 中运行一个 http 服务器,用于管理酒店的入住/退房信息,我使用“fs.writeFile”将所有 JSON 数据从内存写入同一个文件。 数据通常最大不超过 145kB,但是由于我每次从数据库获取更新时都需要编写它们,因此当对 fs.writeFile 的调用立即一个接一个地发生时,我会遇到数据丢失/错误的 JSON 格式。
目前我已经使用“fs.writeFileSync”解决了这个问题,但是我想听听更复杂的解决方案,而不是使用同步功能的简单/坏解决方案。 使用 fs.promises 会导致相同的错误,因为我必须再次调用 fs.promises。 根据 Node 的文档,多次调用 fs.writefile 或 fs.promises 是不安全的,他们建议使用文件流,但是目前这不是一个选项。
总而言之,在尝试任何重复的写入操作之前,我需要等待 fs.writeFile 正常结束,并且使用回调没有用,因为我不知道何时需要执行写入操作。 提前非常感谢您
【问题讨论】:
标签: javascript node.js concurrency writefile