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).
Por que o uso de variáveis de ambiente é essencial no desenvolvimento?
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