2015-04-29 103 views
1

我試圖將現有文件移動到不存在的新文件夾中。我想:nodeJS,將文件移動到一個新文件夾

var source = fs.createReadStream(file.thumbnail.path); 
var dest = fs.createWriteStream('./public/uploads/'+ user._id + '/' + file.myfail.name); 

source.pipe(dest); 

不過,我不斷收到此錯誤Error: ENOENT, open './public/uploads/553283d3216c3895055612dd/18f1b232024ac9d7a5d398dc9291e160.jpg'

我使用__dirname也嘗試過,但似乎並沒有幫助。

我很確定這是一個不存在的文件夾問題,但我不知道如何解決它。

PS:在檢查文件夾是否不存在後,我該如何創建它?

感謝

回答

0

ENOENT錯誤是因爲該文件或文件夾不存在。

解決此問題的唯一方法是打開確實存在的文件。在嘗試此操作之前,用戶的文件夾可能不存在?檢查文件夾是否存在。

另一件需要注意的事情是Node.js有一個path模塊,它提供了很多有用的文件路徑工具。

var path = require('path') 
var destination = path.join(__dirname, 'public/uploads', user._id, file.myfile.name) 
+0

以及如何在不存在的情況下創建文件夾? – greW

+2

'fs.mkdir' - 或者你可以使用npm'mkdirp',如果你製作一個父母可能不存在的目錄 –

+0

好吧謝謝你們@JoshWilik&Dan Pantry – greW

0

您需要檢查子目錄「./public/uploads/」+ user._id是否存在。

如果不存在,請在嘗試寫出不存在的目錄之前創建該目錄。

相關問題