我正在构建一个nodejs脚本。脚本流程如下:
- 打开带有r+标志的文件
- 然后读取打开的文件内容(使用fs.read)作为json。
- 运行用户回调,允许用户操作json(文件仍打开)
- 向文件中写入新对象
- 关闭
我的问题是我不知道如何在不关闭文件的情况下确定文件的新大小。
因此,例如,如果首先执行这段代码:
ffs.lockAndManipulateJSON(__dirname + '/var/meta.json', function (json) {
json.test = 'ABC';
json.foo = 'bar';
});
在未来的某个时刻:
ffs.lockAndManipulateJSON(__dirname + '/var/meta.json', function (json) {
delete json.foo;
});
文件的内容如下:
{
"test": "ABC"
} "foo": "bar"
}
但我希望它是:
{
"test": "ABC"
}
所以,我的问题是:如何在文件仍打开时使用nodejs设置新文件大小?
Ftruncate应该做您正在寻找的。编辑:*请注意,您需要打开文件"w+"才能工作。