我想要创建一些目录的指导

I would like guidance to create some directories

我需要的:

在桌面上创建一个文件夹,在该文件夹中创建另一个名为“img”的文件夹,并在 img 中创建“home”。

我设法做到的方式,但我知道这不是理想的方式...我仍在学习,感谢您的耐心等待!

有什么改进建议吗?

var nome = 'teste';
const dir = `C:/Users/mathe/Desktop/${nome}`;

if (!fs.existsSync(dir)){
    fs.mkdir(dir, (err) => {
        if(err){
            console.log(err)
        }else{
            dirImg = dir+'/'+'img';
            fs.mkdirSync(dirImg)
            fs.mkdirSync(dirImg+'/'+'home')
            console.log('Sucess')
        }
    });
}else{
    console.log(`File $ {name} cannot be created because it already exists!`)
}

mkdir 有一个 recursive 选项,所以:

if (!fs.existsSync(dir)){
    fs.mkdir(`${dir}/img/home`, {recursive: true}, (err) => {
//           ^^^^^^^^^^^^^^^^^−−^^^^^^^^^^^^^^^^^^−−−−−−−−−−−−−−−−−−−
        if(err){
            console.log(err)
        }else{
            console.log('Sucess')
        }
    });
}else{
    console.log(`File $ {name} cannot be created because it already exists!`)
}

旁注:在创建之前检查是否存在通常不是一个好主意。相反,只需继续并尝试创建它。来自文档:

Calling fs.mkdir() when path is a directory that exists results in an error only when recursive is false.

所以:

fs.mkdir(`${dir}/img/home`, {recursive: true}, (err) => {
//       ^^^^^^^^^^^^^^^^^−−^^^^^^^^^^^^^^^^^^−−−−−−−−−−−−−−−−−−−
    if(err){
        console.log(err)
    }else{
        console.log('Sucess')
    }
});