源代码:
console.log('Starting app.');
const fs = require('fs');
fs.appendFile('greetings.txt', 'Hello world!');
fs.appendFileSync('greetings.txt', 'Hello world!');
当我在终端中加载应用程序时,它一直给我这个错误信息。
fs.appendFile()
是该接口的异步版本,它要求最后一个参数是一个回调,给你完成和/或错误条件。
见文档
fs.appendFile(path, data[, options], callback)
回调是不可选的。
这个函数的正确用法是:
fs.appendFile('greetings.txt', 'Hello world!', err => {
if (err) {
console.log(err);
} else {
console.log("data appended successfully");
}
});
另外,请注意,这是异步的和非阻塞的,所以回调将在一段不确定的时间后被调用(当追加结束时),但在此之后的下一行代码将立即执行(在回调被调用之前)。
其他相关接口为异步接口的承诺版本:
fs.promises.appendFile(path, data[, options])
你没有传递回调给这个版本。相反,它返回一个承诺,你可以用它来获得完成/错误的通知。
fs.promises.appendFile('greetings.txt', 'Hello world!').then(() => {
console.log("data appended successfully");
}).catch(err => {
console.log(err);
});
对于异步接口,promise版本更新,被认为更现代。