在下面的代码中,我正在尝试编写非现有文件'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.');
}
});
答案 0 :(得分:3)
因为如果文件不存在,writeFile
函数会创建文件。
基本上,您可以通过提交options
对象作为第三个参数来更改此功能的行为,如documentation中所述。对于flags
属性,您可以提供fs.open文档中描述的任何值。
对于写作,它们是:
w
- 打开文件进行写作。创建文件(如果它不存在)或截断(如果存在)。wx
- 与w
类似,但以独占模式打开文件。w+
- 打开文件进行读写。创建文件(如果它不存在)或截断(如果存在)。wx+
- 与w+
类似,但以独占模式打开文件。 writeFile
的默认值为w
,因此如果文件不存在,则会创建该文件。由于当文件不存在时没有提供错误的选项,您需要另外检查文件是否已存在。
为此,请查看fs.exists
功能(有关详细信息,请参阅documentation)。
基本上,您的代码应该有点像这样:
var fs = require('fs');
fs.exists('foo.txt', function (exists) {
if (!exists) {
return 'Error, file foo.txt does not exist!';
}
fs.writeFile('foo.txt', ...);
});