button-icon

GirişYap

GirişYap
Archi's Academy
    Kurslar
    Kurslar
    #
  • Projeler
    Projeler
  • Archi's Academy

    Alanlar

    #
  • Bloglar
    Bloglar
  • Fiyatlandırma
    Fiyatlandırma
  • İletişim
    İletişim
  • Öğrenci Kulüpleri İçin
    Öğrenci Kulüpleri İçin

BLACK FRIDAY

Tüm Kasım boyunca %85 İndirim

whatsapp
İletişime Geç
Archi's Academy

Navigasyon

  • Kurslar
  • Projeler
  • Bloglar
  • Fiyatlandırma
  • Öğrenci Kulüpleri İçin
  • İletişim

Kurslar

    Alanlarımız

    • Frontend Geliştirme
    • Backend Geliştirme
    • Kalite Güvencesi
    • Agentic AI Kodlama ve LLM
    • Mobil Geliştirme
    • DevOps

    Yasal

    • Gizlilik Politikası
    • Hizmet Şartları

    İletişim

    +1 (217) 200 90 93
    Suite No: 8, 400 Emmet Street
    Kissimmee, Florida 34741 USA
    [email protected]

    Copyright © Tech Career Yazılım Danışmanlık A.Ş. 2026

    instagramlinkedingithubyoutubexfacebook
    visamastercardstripeiyzicoamerican-express
    ETBIS
    1. Home›
    2. Blog›
    3. Como Definir e Usar Variáveis de Ambiente no Node.js: Guia Prático

    Software Development

    Coding

    Como Definir e Usar Variáveis de Ambiente no Node.js: Guia Prático

    Colocar credenciais de banco de dados, chaves de API e segredos direto no código é receita para vazamento. Variáveis de ambiente são como aplicações em produção lidam com dados sensíveis com segurança – vamos fazer isso do jeito certo.

    Por que Variáveis de Ambiente Importam

    Você está construindo uma aplicação em Node.js. Seu código precisa de uma senha de banco de dados, de uma chave de API de um serviço externo e de configurações que mudam entre desenvolvimento e produção.
    Você basicamente tem três opções:
    1. Hardcodar tudo no código – senha do banco em config.js, chave de API perdida em um comentário, segredos versionados no git. É assim que sistemas são invadidos. Não faça isso.
    2. Variáveis de ambiente – você mantém dados sensíveis separados do código. Valores diferentes para desenvolvimento, staging e produção. Mais seguro, escalável e padrão de mercado.
    3. Gerenciador de segredos – AWS Secrets Manager, HashiCorp Vault etc. A abordagem corporativa para sistemas grandes.
    Para a maioria dos projetos em Node.js e aplicações pequenas/médias, variáveis de ambiente com dotenv é o caminho certo.

    O Que São Variáveis de Ambiente, de Verdade

    Variáveis de ambiente são valores definidos no sistema operacional que sua aplicação consegue acessar em tempo de execução.
    Quando você define algo como:
    DB_PASSWORD=supersecret123
    API_KEY=abc123xyz789
    NODE_ENV=production
    
    Sua aplicação consegue ler esses valores sem que eles apareçam no código-fonte:
    const password = process.env.DB_PASSWORD; // "supersecret123"
    const apiKey = process.env.API_KEY; // "abc123xyz789"
    const env = process.env.NODE_ENV; // "production"
    
    O sistema operacional injeta tudo isso em process.env – um objeto global do Node.js – na hora em que o processo é iniciado.

    Por Que Isso é Importante

    Segurança: Segredos não aparecem no código nem no histórico do git. Se seu repositório for público, suas credenciais não ficam expostas.
    Configuração: Ambientes diferentes (desenvolvimento, homologação, produção) podem ter valores diferentes sem precisar alterar uma linha de código.
    Flexibilidade de deploy: Você faz deploy do mesmo código em servidores diferentes – cada ambiente tem suas próprias variáveis de ambiente, e a aplicação se adapta automaticamente.

    O Problema: Configurar Tudo na Mão é Chato

    Configurar variáveis de ambiente manualmente para cada desenvolvedor e para cada ambiente de deploy é cansativo.
    No macOS/Linux:
    export DB_HOST=localhost
    export DB_PASSWORD=mypassword
    export API_KEY=key123
    
    No Windows (PowerShell):
    $env:DB_HOST="localhost"
    $env:DB_PASSWORD="mypassword"
    $env:API_KEY="key123"
    
    Cada pessoa do time tem que repetir esse processo. Cada pipeline de CI/CD também. É fácil errar, esquecer uma variável ou usar o valor errado.
    É aqui que entra o dotenv.

    Usando Dotenv: o Jeito Simples

    Dotenv é uma biblioteca para Node.js que carrega variáveis de ambiente a partir de um arquivo .env direto para process.env.

    Passo 1: Instale o Dotenv

    npm install dotenv
    
    ou com Yarn:
    yarn add dotenv
    

    Passo 2: Crie um Arquivo .env

    Crie um arquivo .env na raiz do projeto:
    DB_HOST=localhost
    DB_PORT=5432
    DB_USER=admin
    DB_PASSWORD=mysecurepassword
    API_KEY=abc123xyz789
    NODE_ENV=development
    JWT_SECRET=your-jwt-secret-key
    LOG_LEVEL=info
    

    Passo 3: Carregue as Variáveis no Seu App

    No começo da sua aplicação (antes de qualquer código que use essas variáveis), faça o require e configure o dotenv:
    // app.js ou server.js – PRIMEIRA LINHA
    require('dotenv').config();
    
    
    // AGORA você pode usar process.env
    const express = require('express');
    const app = express();
    
    
    const dbHost = process.env.DB_HOST;
    const dbPort = process.env.DB_PORT;
    const apiKey = process.env.API_KEY;
    
    
    console.log(`Conectando no banco em ${dbHost}:${dbPort}`);
    app.listen(3000);
    
    Crítico: Chame require('dotenv').config() antes de qualquer outro require que dependa de variáveis de ambiente.

    Passo 4: Adicione .env ao .gitignore

    NUNCA faça commit do .env no git. Seus segredos vão parar no repositório.
    # .gitignore
    .env
    .env.local
    .env.*.local
    

    Passo 5: Compartilhe um Template (Sem Segredos)

    Crie um .env.example com as mesmas chaves, mas com valores de exemplo:
    # .env.example – É este que vai pro repositório
    DB_HOST=localhost
    DB_PORT=5432
    DB_USER=admin
    DB_PASSWORD=change_me
    API_KEY=change_me
    NODE_ENV=development
    JWT_SECRET=change_me
    LOG_LEVEL=info
    
    Outros desenvolvedores copiam esse arquivo e preenchem os valores reais localmente:
    cp .env.example .env
    # Depois edite o .env com os valores reais
    

    Exemplo Prático: API em Express com Variáveis de Ambiente

    Um exemplo simples usando Express.js:
    // server.js
    require('dotenv').config();
    
    
    const express = require('express');
    const postgres = require('pg');
    
    
    const app = express();
    
    
    // Lê configurações a partir das variáveis
    const config = {
      db: {
        host: process.env.DB_HOST,
        port: process.env.DB_PORT,
        user: process.env.DB_USER,
        password: process.env.DB_PASSWORD,
        database: process.env.DB_NAME
      },
      api: {
        port: process.env.PORT || 3000,
        apiKey: process.env.API_KEY,
        jwtSecret: process.env.JWT_SECRET
      },
      env: process.env.NODE_ENV || 'development'
    };
    
    
    // Valida variáveis obrigatórias
    if (!config.api.apiKey) {
      throw new Error('A variável de ambiente API_KEY é obrigatória');
    }
    
    
    // Conecta no banco
    const pool = new postgres.Pool(config.db);
    
    
    // Rotas
    app.get('/api/users', (req, res) => {
      const authHeader = req.headers.authorization;
      const token = authHeader?.split(' ');[1]
    
    
      // Verifica token usando JWT_SECRET
      if (!token) {
        return res.status(401).json({ error: 'Unauthorized' });
      }
    
    
      // Consulta o banco com o pool de conexões
      pool.query('SELECT * FROM users', (err, result) => {
        if (err) throw err;
        res.json(result.rows);
      });
    });
    
    
    // Sobe o servidor
    const port = config.api.port;
    app.listen(port, () => {
      console.log(`Servidor rodando na porta ${port} em modo ${config.env}`);
    });
    
    Com essa configuração:
    • Credenciais de banco vêm do .env
    • Chaves de API e segredos são variáveis de ambiente
    • O mesmo código roda em dev, staging e produção com .env diferentes
    • Nada sensível vai parar no seu repositório git

    Boas Práticas para Variáveis de Ambiente

    1. Valide Variáveis Obrigatórias na Inicialização

    Não espere dar erro de conexão para descobrir que DB_PASSWORD não foi definida.
    require('dotenv').config();
    
    
    const required = ['DB_HOST', 'DB_USER', 'DB_PASSWORD', 'API_KEY'];
    const missing = required.filter(key => !process.env[key]);
    
    
    if (missing.length > 0) {
      throw new Error(`Faltam variáveis de ambiente obrigatórias: ${missing.join(', ')}`);
    }
    

    2. Use um Objeto de Configuração

    Em vez de espalhar process.env.XYZ por todo o código, centralize em um módulo de config:
    // config.js
    require('dotenv').config();
    
    
    module.exports = {
      database: {
        host: process.env.DB_HOST,
        port: process.env.DB_PORT,
        user: process.env.DB_USER,
        password: process.env.DB_PASSWORD
      },
      api: {
        key: process.env.API_KEY,
        jwtSecret: process.env.JWT_SECRET
      },
      app: {
        port: process.env.PORT || 3000,
        environment: process.env.NODE_ENV || 'development'
      }
    };
    
    
    // Uso
    const config = require('./config');
    console.log(config.database.host);
    

    3. Use .env Diferentes para Cada Ambiente

    .env           # padrão / desenvolvimento
    .env.production # overrides para produção
    .env.test      # ambiente de testes
    
    Carregue o arquivo certo:
    const envFile = process.env.NODE_ENV === 'production'
      ? '.env.production'
      : '.env';
    
    require('dotenv').config({ path: envFile });
    

    4. Agrupe Variáveis com Prefixos

    Use prefixos para organizar melhor suas configs:
    # Banco
    DB_HOST=localhost
    DB_PORT=5432
    DB_USER=admin
    
    
    # Redis
    REDIS_HOST=localhost
    REDIS_PORT=6379
    
    
    # Serviços externos
    STRIPE_API_KEY=sk_...
    SENDGRID_API_KEY=SG_...
    

    5. Documente o Que Cada Variável Faz

    No .env.example, comente cada campo:
    # Conexão com banco PostgreSQL
    DB_HOST=localhost      # Host do banco
    DB_PORT=5432           # Porta do banco
    DB_USER=admin          # Usuário
    DB_PASSWORD=change_me  # Senha
    
    
    # Configuração de APIs
    API_KEY=change_me      # Chave de API de serviço externo
    JWT_SECRET=change_me   # Segredo para assinar JWTs
    
    
    # Aplicação
    PORT=3000              # Porta do servidor Express
    NODE_ENV=development   # Ambiente (development/staging/production)
    

    Alternativas ao Dotenv em Produção

    Para desenvolvimento e projetos menores, dotenv funciona muito bem. Para aplicações grandes e produção, considere:

    AWS Secrets Manager

    Armazene segredos na AWS e recupere em tempo de execução. Mais seguro em ambientes cloud.

    HashiCorp Vault

    Gerenciamento de segredos em nível enterprise, com rotação, auditoria e controle fino de acesso.

    Variáveis no CI/CD

    GitHub Actions, GitLab CI, CircleCI etc. permitem definir variáveis de ambiente diretamente no pipeline. Não há necessidade de .env no servidor.

    Kubernetes Secrets

    Em clusters Kubernetes, use Secrets e ConfigMaps para gerenciar configuração e segredos.
    Para aprendizado e desenvolvimento com Node.js, especialmente em cursos como os da Archi’s Academy, o padrão recomendado é começar com dotenv.

    Aprendendo Node.js de Verdade

    Variáveis de ambiente são só uma parte do quebra-cabeça de uma API Node.js pronta para produção. Saber configurar, fazer deploy e operar sua aplicação é o que diferencia quem “só escreve código” de quem realmente entrega sistemas.
    → Aprenda Fundamentos de Node.js (gratuito) →
    → Construa APIs com Express.js →
    Na Archi's Academy, o Backend Development track mostra não só como escrever código em Node.js, mas como configurar, fazer deploy e escalar suas APIs em ambientes reais.
    Learn by Doing. Prove by Doing. Get Hired.
    → Conheça o Backend Development Track →
    Screenshot from 2026-07-20 13-02-05.png

    Resumo: Segredos Devem Ficar Fora do Código

    Hardcodar segredos diretamente no código é um risco de segurança enorme. Variáveis de ambiente são o padrão de mercado para gerenciar configuração sensível. Se você domina esse padrão cedo, reduz drasticamente a chance de vazar credenciais.
    Comece com dotenv em desenvolvimento. Entenda o fluxo. Depois, evolua para gerenciadores de segredos conforme sua aplicação cresce.

    Tem dúvidas sobre variáveis de ambiente, configuração em Node.js ou boas práticas de backend? A equipe da Archi's Academy está pronta para ajudar – fale com a gente quando quiser.
    archis-trainee

    Abanseka Sylvester

    Pazartesi, Tem 20, 2026

    İçerikleri gerçek becerilere dönüştürmeye hazır mısın?

    Proje tabanlı eğitimle hemen başla, ilk günden itibaren uygulamalı deneyim kazan.

    TOC

    Table of Content

    • 01Por que Variáveis de Ambiente Importam
    • 02O Que São Variáveis de Ambiente, de Verdade
    • 03Por Que Isso é Importante
    • 04O Problema: Configurar Tudo na Mão é Chato
    • 05Usando Dotenv: o Jeito Simples
    • 06Passo 1: Instale o Dotenv
    • 07Passo 2: Crie um Arquivo .env
    • 08Passo 3: Carregue as Variáveis no Seu App
    • 09Passo 4: Adicione .env ao .gitignore
    • 10.gitignore
    • 11Passo 5: Compartilhe um Template (Sem Segredos)
    • 12.env.example – É este que vai pro repositório
    • 13Depois edite o .env com os valores reais
    • 14Exemplo Prático: API em Express com Variáveis de Ambiente
    • 15Boas Práticas para Variáveis de Ambiente
    • 161. Valide Variáveis Obrigatórias na Inicialização
    • 172. Use um Objeto de Configuração
    • 183. Use .env Diferentes para Cada Ambiente
    • 194. Agrupe Variáveis com Prefixos
    • 20Banco
    • 21Redis
    • 22Serviços externos
    • 235. Documente o Que Cada Variável Faz
    • 24Conexão com banco PostgreSQL
    • 25Configuração de APIs
    • 26Aplicação
    • 27Alternativas ao Dotenv em Produção
    • 28AWS Secrets Manager
    • 29HashiCorp Vault
    • 30Variáveis no CI/CD
    • 31Kubernetes Secrets
    • 32Aprendendo Node.js de Verdade
    • 33Resumo: Segredos Devem Ficar Fora do Código