【发布时间】:2013-10-14 20:36:52
【问题描述】:
我必须在文件中写入一些 JSON 数据。 一些 JSON 对象在程序执行过程中必须更新,并且这些更新必须保存在文件中(例如数组中的对象)。
有没有一种方法可以在不重写整个文件的情况下做到这一点?
JSON 结构:
{
"varA": {
"varA1": value,
"varA2": value,
},
"varB": value,
"varC": value,
"varD": value,
"array": [
{ obj1 },
{ obj2 },
{ obj3 },
]
}
【问题讨论】:
-
怀疑,我的印象是FS写入整个文件或什么都不写。你为什么不想重写它?也许将您的 JSON 拆分为多个文件和/或将其存储在数据或内存中。
-
你可以很容易地write to arbitrary positions 或append to files,但是当然你需要知道你的文件的结构。
-
在我的测试中,我看到如果我在写入过程中关闭服务器,那么整个文件将是空白的,丢失之前记录的所有数据。简单的追加无法工作,因为应该更新的数据是另一个对象的元素,所以我会遇到括号问题
-
我会为节点使用 mongo 或其他一些轻量级的 json db。
-
如果您想要更复杂一点,我会创建一个新文件而不是尝试重写现有文件(使用新文件名),并在加载/同步时始终查找最新文件文件。当您“找到”新文件时清除旧文件。
标签: javascript json node.js