簡體   English   中英

為什么 fs.createWriteStream 拋出“錯誤:ENOENT:沒有這樣的文件或目錄”錯誤?

[英]Why is fs.createWriteStream throwing a "Error: ENOENT: no such file or directory" error?

這是代碼:

      const dest = fs.createWriteStream('./src/Pages/downloads/' + fileName + '.' + type)

      await drive.files.export({
        fileId: fileId, mimeType: newType}, 
        {responseType: 'stream'},
        function(err, response){
        if(err)return console.log(err);
        response.data.on('error', err => {
            console.log("Found at 911 " + err);
        })
        .pipe(dest, function(){console.log('file path written.')})
        .on('end', ()=>{
            console.log("sent file.")
        })
      });

有幾點需要說明。

  1. 這是在一個 post 請求中,該請求從 google drive 文件中獲取幾個變量,例如它的名稱、id 和 mimetype。 這些是顯示在 WriteStream 請求中的“fileName”和“type”變量。 它們已經預定義,而不是問題所在。 因此,為了這個問題,假設變量類似於 var fileName = test、var type = pdf 和 var newType = "application/pdf"。
  2. drive.files.export function 是對 Google Drive api 的異步調用,它找到具有“fileId”中注明的特定 ID 的文件/文件夾/項目並將其導出。 我在這里試圖實現的是將適合該特定 id 的文件導出到 dest 定義的 WriteStream 中。
  3. “./src/Pages/downloads/”路徑確實存在。 顯然,特定文件(對於測試用例,假設為 test.pdf)還沒有,但這就是我使用 createWriteStream 的原因。
  4. 我已經嘗試將路徑從 './src/Pages/downloads/' 更改為 __dirname + "/src/Pages/downloads" 並發生以下相同的錯誤。

綜上所述,我得到一個看起來像這樣的錯誤。

錯誤:ENOENT:沒有這樣的文件或目錄,打開'./src/Pages/downloads/test.pdf 在 WriteStream 實例上發出'錯誤'事件:at internal/fs/streams.js:375:14

此錯誤發生在 const dest = fs.createWriteStream(...) 事件中。 誰能解釋發生了什么? 真的很感激。 謝謝!

就我而言,最后我發現這是因為文件名不正確,它包含:

我的系統是windows。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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