2016-11-22 57 views
0

這裏是我的作品我的路由器的誰管理自己上傳:誤差的NodeJS FS(WriteFile的)

fs.readFile(files.photo.path, function (err, data) { 
    // Here is the futur name of my file (ex: SERVER_PATH/images/moka/moka22/11/2016_1.jpg) 
    var newPath = __dirname + "/images/moka/moka" + new Date().toLocaleDateString() + "_" + Math.floor(Math.random() * 10) + 1 + "." + ext; 
    fs.writeFile(newPath, data, function (err) { 
     if(err) { 
     res.render('error', { error: err, message: "Erreur lors de l'upload"}); 
     } else { 
     // insctructions 
     }); 
     } 
    }); 
    }); 

當代碼觸發我有這樣的錯誤:

Error: ENOENT: no such file or directory, open 'D:\projects\raspberry\routes\images\moka\moka2016-11-22_91.jpg' 
at Error (native) 

如果我很好理解fs doc(https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback):

fs.writeFile(theNameOfTheFuturFile, theDataToPutIn, callback); 

所以我有點困惑。

對不起,我的英語中,它可能是壞的,我希望,你猜我是什麼意思:)

感謝。

回答

0

問題可能是您寫入的目錄不存在。

所以一定要確保它存在:

fs.readFile(files.photo.path, function (err, data) { 
    var dirPath = '__dirname + "/images/moka/moka'; 
    if (!fs.existsSync(dirPath)){ 
     fs.mkdirSync(dirPath); 
    } 
    ... 

或用手做。

+0

writefile的第一個參數是文件名。但我的PathName是錯誤的 –