为什么在ubuntu服务器的nod​​ejs中动态创建目录时出错?

时间:2019-04-02 04:18:47

标签: javascript node.js ubuntu

我正在尝试在public / data文件夹中创建目录以放置读取的数据,但是在nodejs中动态创建目录时遇到此错误。

Error: ENOENT: no such file or directory, mkdir './public/data/folder'
    at Object.mkdirSync (fs.js:753:3)
    at /home/ubuntu/New/routes/index.js:589:14
    at FSReqWrap.oncomplete (fs.js:141:20)

我已经这样实现了我的代码,方法是检查文件夹是否存在,并使用mkdirsync()创建文件夹(如果不存在)

var dd = './public/data/'+ id;
 if (!fs.existsSync(dd)) 
        {
          fs.mkdirSync(dd,'0777', true);
          console.log("Directory Created!!");
      }

Directory Created!!

2 个答案:

答案 0 :(得分:0)

此问题已解决,具有root权限运行npm

解决方案:

sudo npm install -g软件包名称--unsafe-perm = true --allow-root

答案 1 :(得分:0)

mkdirSync接受选项属性recursive(默认为 false )。 查看guide

因此您可以使用:

fs.mkdirSync('/dir1/dir2', { recursive: true });