在下面的代码中,我正在尝试编写不存在的文件“doesnotexist.text”,但我仍然得到了成功的结果。
var fs = require('fs');
fs.writeFile('doesnotexist.text', 'Hello World!', function (err) {
if (err) {
console.log('error is '+err);
return;
}
else{
console.log('success.');
}
});
因为writeFile
如果文件不存在,该函数会创建文件。
基本上,您可以通过提交一个对象作为第三个参数来更改此函数的行为options
,如文档中所述。对于该flags
属性,您可以提供文档中描述的任何值fs.open文档中描述的任何值。
对于写入,它们是:
w
- 打开文件进行写入。该文件被创建(如果它不存在)或被截断(如果它存在)。wx
- 喜欢w
但以独占模式打开文件。w+
- 打开文件进行读写。该文件被创建(如果它不存在)或被截断(如果它存在)。wx+
- 喜欢w+
但以独占模式打开文件。的默认值为,因此如果文件不存在则创建该文件writeFile
。w
由于在文件不存在时没有提供错误的选项,因此您需要额外检查文件是否已存在。
为此,请查看该fs.exists
功能(有关详细信息,请参阅文档)。
基本上,您的代码应该有点像这样:
var fs = require('fs');
fs.exists('foo.txt', function (exists) {
if (!exists) {
return 'Error, file foo.txt does not exist!';
}
fs.writeFile('foo.txt', ...);
});