fsドキュメントを見て、fs.appendFileで使用できるフラグを探しています。パスにエラーが発生すると、は存在しません。が存在します。 。fs.appendFileただし、パスが存在しない場合は失敗する*なし*
パスがすでに存在しないが、私はパスがが存在していない場合は、エラーが発生します旗を見ていないです場合、私は、エラーを上げるに関連するフラグを見ています -
https://nodejs.org/api/fs.html
fsドキュメントを見て、fs.appendFileで使用できるフラグを探しています。パスにエラーが発生すると、は存在しません。が存在します。 。fs.appendFileただし、パスが存在しない場合は失敗する*なし*
パスがすでに存在しないが、私はパスがが存在していない場合は、エラーが発生します旗を見ていないです場合、私は、エラーを上げるに関連するフラグを見ています -
https://nodejs.org/api/fs.html
ファーストをオフにあなたが参照しているfs.append()
がfs
モジュールにないので、fs.appendFile()
を意味すると見なします。
ファイルが存在しない場合にエラーを返す、追加するファイルを開くフラグがないようです。あなたは自分で書くことができます。ここでこれを行う方法のための一般的な考え方だ:
fs.appendToFileIfExist = function(file, data, encoding, callback) {
// check for optional encoding argument
if (typeof encoding === "function") {
callback = encoding;
encoding = 'utf8';
}
// r+ opens file for reading and writing. Error occurs if the file does
fs.open(file, 'r+', function(err, fd) {
if (err) return callback(err);
function done(err) {
fs.close(fd, function(close_err) {
fd = null;
if (!err && close_err) {
// if no error passed in and there was a close error, return that
return callback(close_err);
} else {
// otherwise return error passed in
callback(err);
}
});
}
// file is open here, call done(err) when we're done to clean up open file
// get length of file so we know how to append
fs.fstat(fd, function(err, stats) {
if (err) return done(err);
// write data to the end of the file
fs.write(fd, data, stats.size, encoding, function(err) {
done(err);
});
});
});
}
あなたは、もちろん、単にファイルがfs.appendFile()
を呼び出す前に存在しているが、それが原因で競合状態の推奨されていないかどうかを確認するためにテストすることができます。その代わりに、適切なフラグをfs.open()
に設定し、ファイルが存在しない場合はそのトリガーにエラーを発生させることをお勧めします。
ありがとうございました。私はfs.appendFileを意味していました。元の質問を編集しました。 –