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

criar um diretório se ele não existir em Node capa

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
Formação Recomendada

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

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares