NodeJS FS (writeFile) 错误

Error with 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 文档 (https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback) :

fs.writeFile(theNameOfTheFuturFile, theDataToPutIn, callback);

所以我有点困惑。

抱歉我的英语不好,我希望你能猜到我的意思:)

谢谢。

问题可能是您写入的目录不存在。

所以请确保它存在:

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

或者手工完成。