在下面的代码中,我尝试写入不存在的文件“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
对象作为第三个参数来更改此函数的行为,如 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', ...);
});
关于node.js - 在node.js中,为什么我在尝试写入不存在的文件时没有收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16915473/