Nodejs无法创建目录

时间:2020-06-02 01:08:09

标签: javascript node.js multer

我想将图像发布到服务器。但是在此之前,我要确保已创建目录,然后再将图像放置到正确的文件夹中。我要创建的文件夹为year/month/day/[image]。我可以在本地PC上生成该文件夹,但是当我想在服务器上应用该文件夹时,会显示一条错误消息,并且没有创建该文件夹。我不知道自己犯了什么错误,希望有人可以帮我解决这个问题。 预先谢谢你。

PWD

enter image description here

错误

返回binding.mkdir(pathModule._makeLong(path),错误:ENOENT:否 这样的文件或目录,mkdir '/ home / eis / development / eis-api-dev / picture / 2020/06/01 /'

代码

var storage = multer.diskStorage({
     destination: function (req, file, cb) {
         ///output: home/eis/development/eis-api-dev/picture/2020/06/01/
          const dir = path.join(__dirname,_const.IMAGE_FILE_PATH+_const.generateImagePath(null,null,null));
          console.log("path:"+dir);
          fs.exists(dir,exists =>{
               if(!exists){
                    //mkdirp.sync(dir);
                    return fs.mkdirSync(dir,{recursive: true},error => cb(error,dir));

               }
               return cb(null,dir)
          });

     },
     filename: function (req, file, cb) {
       cb(null, file.originalname)
     }
   })

3 个答案:

答案 0 :(得分:0)

尝试使用mkdirp创建

 if (!fs.existsSync(directoryPath)){
            mkdirp(directoryPath, function (err) {
              if (err) {
                console.log("Error Creating Directory "+directoryPath);
              }
              else {
                    console.log("Creating Directory "+directoryPath);
              }
   }

答案 1 :(得分:0)

我只需要升级最新的nodejs版本及其工作。

答案 2 :(得分:0)

异步创建目录

const fs = require('fs');
const path = 'newfolder/xyz/';
    fs.exists(path, exists => {
        if (exists) {
            console.log('The directory exists...!!');
        }
        else {
            fs.mkdir(path, { recursive: true }, (error) => {
                console.log(error);
                if (error)
                    // print or display your error
                else {
                    return path;
                }
            });
        }
    });