Como usar dotenv para configurar variáveis de ambiente?

O dotenv permite armazenar e carregar variáveis de ambiente no Node.js de maneira segura, evitando expor credenciais no código-fonte.

Como usar dotenv para configurar variáveis de ambiente?

O dotenv é um pacote do Node.js que permite carregar variáveis de ambiente de um arquivo .env para o process.env. Isso ajuda a manter credenciais e configurações sensíveis fora do código-fonte.

Instalando o dotenv

Para utilizar o dotenv, primeiro instale o pacote:

npm install dotenv

Criando o arquivo .env

No diretório raiz do projeto, crie um arquivo chamado .env e defina suas variáveis de ambiente:

# .env
PORT=3000
DB_USER=admin
DB_PASS=12345

Carregando as variáveis do .env no código

No início do seu arquivo principal (index.js ou server.js), importe e configure o dotenv:

require('dotenv').config();

console.log('Porta:', process.env.PORT);
console.log('Usuário do Banco de Dados:', process.env.DB_USER);

Agora, ao rodar o código, as variáveis do .env serão carregadas automaticamente.

Definindo valores padrão para variáveis de ambiente

Caso uma variável não esteja definida no .env, podemos definir valores padrão:

const PORT = process.env.PORT || 5000;
console.log(`Servidor rodando na porta ${PORT}`);

Se PORT não estiver no .env, ele assumirá o valor 5000.

Utilizando dotenv em diferentes ambientes

Podemos usar diferentes arquivos .env para cada ambiente:

  • .env.development (para desenvolvimento)
  • .env.production (para produção)

Para carregar um arquivo específico, utilize a opção path:

require('dotenv').config({ path: '.env.production' });

Evitando expor o arquivo .env

Nunca compartilhe seu .env em repositórios públicos. Adicione ele ao .gitignore para evitar que seja versionado:

# .gitignore
.env

Conclusão

O dotenv é uma solução simples e eficaz para carregar variáveis de ambiente no Node.js. Ele melhora a segurança do código ao evitar a exposição de credenciais e facilita a configuração de múltiplos ambientes de desenvolvimento.

O uso de variáveis de ambiente no desenvolvimento de software é essencial para separar configurações do código-fonte. Em vez de armazenar credenciais sensíveis diretamente no código, podemos gerenciá-las externamente de forma segura.

Com o dotenv, projetos Node.js podem facilmente definir configurações para diferentes ambientes, como desenvolvimento, testes e produção. Isso permite que a mesma base de código funcione em diferentes contextos sem precisar de modificações manuais.

Empresas e frameworks modernos, como Next.js e NestJS, já adotam práticas similares para garantir maior segurança e flexibilidade na configuração de suas aplicações.

Algumas aplicações:

  • Armazenamento seguro de credenciais de banco de dados
  • Definição de portas e configurações de servidor
  • Gerenciamento de chaves de API e tokens
  • Configuração dinâmica para diferentes ambientes
  • Evitar exposição de informações sensíveis no código-fonte

Dicas para quem está começando

  • Sempre adicione .env ao .gitignore para evitar vazamento de credenciais.
  • Use process.env.NOME_DA_VARIAVEL para acessar valores do ambiente.
  • Defina valores padrão no código para evitar erros caso uma variável não esteja definida.
  • Se precisar de diferentes ambientes, use arquivos .env.development e .env.production.
  • Utilize pacotes como dotenv-safe para garantir que todas as variáveis necessárias estejam configuradas.
Foto de Tatiane Souza
Contribuições de
Tatiane Souza

Desenvolvedora backend focada em aplicações Node.js e arquitetura de microsserviços.

Mais sobre o autor
Compartilhe este tutorial: Como usar dotenv para configurar variáveis de ambiente?

Compartilhe este tutorial

Continue aprendendo:

Como carregar variáveis de ambiente no Node.js?

As variáveis de ambiente no Node.js permitem armazenar configurações sensíveis, como credenciais e URLs, sem expô-las no código-fonte.

Tutorial anterior

Como importar um módulo assíncrono no Node.js?

O Node.js permite importar módulos de forma assíncrona utilizando import(), facilitando o carregamento dinâmico de dependências.

Próximo tutorial