async mkdir 正在抛出现有错误,但它不在 node.js 中

问题描述

我正在尝试在 node.js 中创建一个目录,如果该目录已经存在,则忽略异常。

这是我的代码:

const containerWorkDirectory = `/home/msh/Documents/arraba-api/app/build/plugin/images/images`;
const createDirectoryIfNotExists = async (
    dir,permission: boolean = true
) => {
    let output;

    try {
        output = await fsPromises.mkdir(dir,{
            mode: permission === true ? 0o775 : undefined,});
    } catch (error) {
        output = error.message;
        console.warn('Folder_Already_Exists');
    }

    return output;
};
const userDirectoryTreeCreation = async (userId) => {
    let userImagesDirectory = `${containerWorkDirectory}/${userId}`;
    let userProfileImagesDirectory = `${userImagesDirectory}/profile`;
    let userCarImagesDirectory = `${userImagesDirectory}/cars`;

    await createDirectoryIfNotExists(
        userImagesDirectory,true
    );
    await createDirectoryIfNotExists(
        userProfileImagesDirectory,true
    );
    await createDirectoryIfNotExists(
        userCarImagesDirectory,true
    );
};
userDirectoryTreeCreation(1);

但是我收到了这个错误:

{ [Error: EEXIST: file already exists,mkdir '/home/msh/Documents/arraba-api/app/build/plugin/images/images/5/profile']
  errno: -17,code: 'EEXIST',syscall: 'mkdir',path:
   '/home/msh/Documents/arraba-api/app/build/plugin/images/images/5/profile' }
{ [Error: EEXIST: file already exists,mkdir '/home/msh/Documents/arraba-api/app/build/plugin/images/images/5/cars']
  errno: -17,path:
   '/home/msh/Documents/arraba-api/app/build/plugin/images/images/5/cars' }

但是当我检查文件夹不存在时。 请注意,我使用的是 Linux,因为操作系统和文件夹不存在,但我没有从 node.js 文件系统中收到现有错误。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)