Como criar um diretório se ele não existir em Node.js
Neste artigo você vai aprender a como criar um diretório se ele não existir em Node, vamos utilizar uma lógica eficaz

Fala programador(a), beleza? Bora aprender mais sobre Node!
Criar um diretório em Node.js é simples e pode ser feito com o módulo nativo ‘fs’.
Se você quiser criar um diretório apenas se ele não existir, você pode usar o método ‘fs.existsSync ()’ para verificar se o diretório existe e, se não, usar o método ‘fs.mkdirSync ()’ para criá-lo.
Aqui está um exemplo de como você pode fazer isso:
const fs = require('fs');
const dir = './new_directory';
if (!fs.existsSync(dir)){
fs.mkdirSync(dir);
console.log(`Diretório ${dir} criado com sucesso.`);
} else {
console.log(`O diretório ${dir} já existe.`);
}
Neste exemplo, verificamos se o diretório ‘new_directory’ existe usando o método ‘fs.existsSync ()’. Se não existir, usamos o método ‘fs.mkdirSync ()’ para criá-lo.
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
Se o diretório já existir, apenas exibimos uma mensagem informando isso.
Lembre-se de que o método ‘fs.mkdirSync ()’ só pode ser usado com a sincronização, o que significa que o código subsequente não será executado até que o diretório seja criado.
Se você precisar criar um diretório de forma assíncrona, pode usar o método ‘fs.mkdir ()’ em vez disso.
Em resumo, criar um diretório em Node.js é fácil e pode ser feito com o módulo ‘fs’. Verifique se o diretório existe usando ‘fs.existsSync ()’ e crie-o com ‘fs.mkdirSync ()’ se ele não existir.
Quer aprender mais sobre Node? Confira o vídeo abaixo:
Conclusão
Chegamos ao fim do artigo sobre como criar um diretório se ele não existir em Node!
Em conclusão, criar um diretório em Node.js é uma tarefa simples que pode ser realizada com o módulo nativo ‘fs’.
Com a verificação do método ‘fs.existsSync ()’ e a criação do método ‘fs.mkdirSync ()’, é possível garantir que um diretório seja criado apenas se ele não existir.
Esta é uma habilidade útil para ter em seu arsenal de desenvolvimento, pois é comum precisar armazenar e gerenciar arquivos em seus aplicativos.
Além disso, o uso do Node.js como plataforma é amplamente utilizado em muitos setores devido a sua flexibilidade e capacidade de realizar tarefas de maneira eficiente.
Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.
Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!
Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!
Sync ou async: qual usar em cada caso?
O trecho acima já disse que a versão síncrona segura o código até terminar
Só que essa frase esconde a parte que realmente importa: o que fica travado enquanto isso?
Seu código Node roda em uma thread principal só
Enquanto a criação síncrona do diretório não devolve o controle, nada mais anda ali: nem outra requisição, nem um timer, nem um callback esperando na fila
Em script pontual isso é ótimo
Aquele arquivo que roda uma vez quando a aplicação sobe, só pra garantir que a pasta de uploads existe, pode ser síncrono sem dó: é simples, previsível e não vira aninhamento de callback
Agora, dentro de uma rota que responde usuário, a conversa muda completamente
Regra prática pra decidir rápido:
pasta criada no start da aplicação, versão síncrona resolve
pasta criada em resposta a uma requisição ou dentro de um fluxo que já é async/await, vai de versão assíncrona e não mistura os dois estilos no mesmo caminho de código
Beleza? 🙂
E se o diretório aparecer entre a verificação e a criação?
Repara que verificar e criar são dois momentos separados
Primeiro o código pergunta se a pasta existe, depois ele manda criar
Entre uma coisa e outra existe uma fresta de tempo
Em script rodando sozinho na tua máquina, tu nunca vai ver problema nisso
O caldo entorna quando tem mais de um processo mexendo na mesma pasta: dois workers subindo juntos, jobs em paralelo, aplicação em cluster
Os dois passam pela verificação no mesmo instante, os dois acham que a pasta não existe, os dois tentam criar
Um cria, o outro estoura erro
E se essa criação estiver solta no meio do arquivo, sem tratamento, o processo morre por causa de uma pasta que JÁ estava do jeito que tu queria
Tome cuidado! O que se quer aqui não é a pasta criada por você, é a pasta existindo
Então vale envolver a criação em try/catch e tratar o caso de "já existe" como sucesso, seguindo o fluxo normal, em vez de deixar o erro derrubar tudo
É uma linha a mais de código que evita aquele bug que só aparece em produção, nunca no teu ambiente local 😛
Cuidado com o ‘./’ do caminho:
Esse ponto barra do começo do caminho engana muita gente
Ele não é relativo ao arquivo onde tu escreveu o código
Ele é relativo à pasta de onde o processo foi executado
Ou seja: rodou o script estando na raiz do projeto, a pasta nasce na raiz
Entrou em outra pasta e rodou o mesmo arquivo de lá, a pasta nasce lá dentro
Mesmo código, dois lugares diferentes
Já me ferrei uma vez por causa disso, procurando a pasta de upload no lugar errado enquanto ela estava alegremente criada dois níveis acima
Se o diretório "sumiu", antes de sair caçando bug no fs, confere de qual pasta o teu processo está sendo iniciado (inclusive quando quem inicia é um gerenciador de processos ou um container, que raramente sobem da pasta que tu imagina)
Leia também
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares

Como atualizar Node e npm para última versão
Neste artigo você vai aprender a como atualizar Node e npm para última versão, vamos utilizando uma estratégia bem simples Fala programador(a), bora aprender mais […]

Encontrar e encerrar processo na porta 3000 no Mac, Windows e Linux
Neste artigo você vai aprender a como encontrar e encerrar processo na porta 3000 no Mac, Windows e também no Linux Fala programador(a), beleza? Bora […]

Como desinstalar completamente o Node e instalar novamente
Neste artigo você vai aprender a como desinstalar completamente o Node e instalar novamente, em Windows, Linux e Mac Fala programador(a), beleza? Bora aprender mais […]
