[英]Node.js error-handle relevance between fs.stat and fs.readFileSync
首先,对不起我的英语不好,感谢您点击这个问题。
我想用 Node.js 代码读取一些文件
为此,首先,我必须检查文件是否存在。
所以我为此使用了fs.stat 。
然后,我想同步读取文件。
所以我为此使用了fs.readFileSync 。
我的问题是,虽然我处理了fs.stat的错误,但我应该单独处理fs.readFilesync的错误吗?
下面是代码
fs.stat('./fooData.json', function(err, stat){
if(err === null){ // <-- on this point, fooData.json's existence is confirmed.
try{ // <-- should I error-handle for readFilesync again ?
let oldData = fs.readFileSync('./fooData.json');
}
catch(e){
console.log(e); // file read error handle
}
}
是的,你应该这样做,因为调用fs.stat
并不能保证在调用fs.readFileSync
时文件存在,而且它不能保证你可以读取这个文件(没有权限等等)。
官方 Node.js 文档不建议在fs.stat
之前使用fs.readFileSync
:
不建议在调用 fs.open()、fs.readFile() 或 fs.writeFile() 之前使用 fs.stat() 检查文件是否存在。 相反,用户代码应该直接打开/读取/写入文件并处理文件不可用时引发的错误。
参见fs.stat
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.