簡體   English   中英

Node.js fs.stat 和 fs.readFileSync 之間的錯誤句柄相關性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM