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.

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

As variáveis de ambiente são uma forma segura de armazenar informações sensíveis, como credenciais de banco de dados, chaves de API e configurações do sistema, sem incluí-las diretamente no código-fonte. No Node.js, podemos acessá-las através do objeto process.env.

Definindo variáveis de ambiente no terminal

Podemos definir uma variável de ambiente diretamente no terminal antes de rodar um script:

export PORT=3000
node app.js

No Windows (PowerShell), o comando é:

$env:PORT=3000
node app.js

Dentro do app.js, acessamos essa variável com:

console.log(process.env.PORT);

Criando um arquivo .env

Uma forma mais prática de definir variáveis de ambiente é usando um arquivo .env. Para isso, criamos um arquivo no diretório do projeto:

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

Carregando variáveis do .env com dotenv

Para que o Node.js reconheça essas variáveis automaticamente, usamos o pacote dotenv. Primeiro, instalamos o pacote:

npm install dotenv

Depois, carregamos as variáveis no nosso código:

require('dotenv').config();
console.log(process.env.PORT); // Saída: 3000

Agora, qualquer variável definida no .env pode ser acessada pelo process.env sem precisar defini-las manualmente no terminal.

Configurando dotenv corretamente

O código geralmente é estruturado da seguinte forma:

require('dotenv').config();
const express = require('express');
const app = express();
const PORT = process.env.PORT || 5000;

app.listen(PORT, () => {
    console.log(`Servidor rodando na porta ${PORT}`);
});

Se a variável PORT estiver definida no .env, o servidor usará esse valor. Caso contrário, ele assumirá a porta padrão 5000.

Conclusão

Carregar variáveis de ambiente no Node.js é essencial para proteger informações sensíveis e tornar o código mais flexível. Utilizar dotenv facilita essa gestão e permite configurar facilmente diferentes ambientes (desenvolvimento, teste, produção).

No desenvolvimento de software, separar configurações do código-fonte é uma prática essencial. Variáveis de ambiente garantem que credenciais e configurações sensíveis não sejam expostas no código, reduzindo riscos de segurança.

Frameworks modernos, como Next.js e NestJS, já possuem suporte integrado para carregamento de variáveis de ambiente. No entanto, mesmo em projetos básicos de Node.js, utilizar ferramentas como dotenv ajuda a manter um código mais organizado e seguro.

Além disso, ao usar serviços como Docker e Kubernetes, variáveis de ambiente são a principal forma de configurar aplicações sem alterar arquivos do código-fonte.

Algumas aplicações:

  • Armazenamento seguro de credenciais de API
  • Configuração dinâmica de aplicações
  • Definição de ambientes de desenvolvimento, teste e produção
  • Segurança contra exposição de informações sensíveis no código
  • Facilidade na configuração de microsserviços e containers

Dicas para quem está começando

  • Não versione o arquivo .env. Adicione ele ao .gitignore.
  • Sempre use process.env.NOME_DA_VARIAVEL para acessar valores do ambiente.
  • Defina valores padrão para evitar erros caso uma variável não esteja definida.
  • Utilize bibliotecas como dotenv-safe para garantir que todas as variáveis necessárias estejam configuradas.
  • Se estiver usando Docker, defina variáveis de ambiente no docker-compose.yml.

Contribuições de Henrique Almeida

Compartilhe este tutorial: Como carregar variáveis de ambiente no Node.js?

Compartilhe este tutorial

Continue aprendendo:

Como fazer o Node.js reconhecer imports ES6 sem usar require?

O Node.js permite usar imports ES6 em vez de require ativando ES Modules no package.json ou utilizando a extensão .mjs.

Tutorial anterior

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.

Próximo tutorial