到目前为止,我的假设是如果fs.appendFileSync
引发异常,那么可以保证目标文件的内容没有改变一位。
[The official documentation of this function与这个问题无关(通常与失败案例无关)。
[The source code of this function显示它调用了fs.writeFileSync
,这依次执行此操作:
try {
while (length > 0) {
const written = fs.writeSync(fd, data, offset, length, position);
offset += written;
length -= written;
if (position !== null) {
position += written;
}
}
} finally {
if (!isUserFd) fs.closeSync(fd);
}
我可以从以上推断fs.appendFileSync
在部分更改目标文件后可能会引发异常吗?
如果是,那么是否有任何已知的工具或范例来处理这种相当难以处理的情况?
非常感谢!
是的,fs.appendFileSync不支持任何形式的交易afaik。虽然我不知道此用例的任何部分nodeJS模块,但您可以通过
手动进行操作