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

Javascript 为什么在ubuntu服务器的nodejs中动态创建目录时出错?,javascript,node.js,ubuntu,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:2

我试图在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()


这解决了问题,使用root权限运行npm

解决方案:


sudo npm install-g PACKAGE-NAME--unsafe perm=true--allow root

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

因此,您可以使用:

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

我认为您应该检查中间目录是否也存在,因为可能不存在public或public/data。请不要使用根权限。获取相同错误
enoint:没有这样的文件或目录,mkdir'/dir1/dir2'
,从生成运行。
fs.mkdirSync('/dir1/dir2', { recursive: true });