Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 16 – API JavaScript, Node.js e Express – Environment Variables – Configuração segura

Imagem destacada da aula de API

Introdução (3 min)

Imagine que você guarda a chave da sua casa debaixo do tapete. É prático, mas perigoso, certo? Variáveis de ambiente são como um cofre para as chaves da sua aplicação. Elas armazenam informações sensíveis, como senhas de banco de dados e chaves de API, de forma segura, fora do código-fonte.

Em APIs modernas, isso é indispensável para proteger suas informações e garantir a segurança da sua aplicação. Nesta aula, vamos construir uma API Node.js/Express simples que utiliza variáveis de ambiente para armazenar uma chave secreta, simulando uma situação real de desenvolvimento.

Dentro do ecossistema Node.js/Express, as variáveis de ambiente são acessadas através do objeto process.env. É um recurso nativo que se integra perfeitamente com o framework Express e outras tecnologias.

Conceito Fundamental (7 min)

Variáveis de ambiente são valores nomeados, armazenados pelo sistema operacional, que podem ser acessados por programas em execução. Elas permitem configurar o comportamento de uma aplicação sem alterar o código-fonte, o que é vital para gerenciar informações sensíveis e adaptar a aplicação a diferentes ambientes (desenvolvimento, teste, produção).

Na indústria, termos como environment variables, .env files e dotenv são comuns. Um caso de uso frequente é armazenar credenciais de acesso a bancos de dados. Imagine implantar sua API no HostGator: você configura as variáveis de ambiente diretamente no painel de controle, sem precisar modificar o código.

A integração com outras tecnologias, como Docker e Kubernetes, é perfeita, pois elas permitem injetar variáveis de ambiente nos containers, simplificando a configuração e a implantação. A principal vantagem é a segurança e a flexibilidade. A desvantagem é que, se não forem gerenciadas corretamente, podem se tornar um ponto de falha na segurança.

Implementação Prática (10 min)

// Importa o módulo 'express'
const express = require('express');
// Importa o módulo 'dotenv' para carregar variáveis de ambiente do arquivo .env
require('dotenv').config();

// Cria uma instância do aplicativo Express const app = express(); // Define a porta em que o servidor irá escutar, utilizando a variável de ambiente PORT ou a porta 3000 como padrão const port = process.env.PORT || 3000;

// Middleware para processar dados JSON no corpo das requisições app.use(express.json());

// Rota principal que retorna uma mensagem incluindo a chave secreta app.get('/', (req, res) => { // Recupera a chave secreta da variável de ambiente SECRET_KEY. Se não existir, retorna um erro. const secretKey = process.env.SECRET_KEY; if (!secretKey) { // Retorna um erro 500 e uma mensagem indicando que a chave secreta não foi configurada return res.status(500).json({ error: 'Chave secreta não configurada!' }); } // Retorna uma mensagem com a chave secreta (apenas para demonstração - NUNCA faça isso em produção!) res.send(A chave secreta é: ${secretKey}); });

// Inicia o servidor e escuta na porta especificada app.listen(port, () => { console.log(Servidor rodando na porta ${port}); });


Crie um arquivo .env na raiz do projeto

📚 Informações da Aula

Curso: API Completo - Node.js & Express

Tempo estimado: 25 minutos

Pré-requisitos: JavaScript básico

touch .env

Adicione a chave secreta ao arquivo .env

echo "SECRET_KEY=SuaChaveSecretaAqui" >> .env

Execute a aplicação

node index.js

No HostGator Plano M, você configura as variáveis de ambiente diretamente no painel de controle, na seção “Variáveis de Ambiente”. Lembre-se de nunca expor chaves secretas no código-fonte.

Exercício Hands-On (5 min)

Modifique o código para retornar uma mensagem diferente com base em uma variável de ambiente chamada NODE_ENV, que pode ter os valores development ou production. Teste seu código localmente e simule a configuração no HostGator alterando o valor da variável NODE_ENV no seu arquivo .env.

Solução:

// ... (código anterior) ...

app.get('/', (req, res) => { // ... (código anterior) ...

const environment = process.env.NODE_ENV || 'development';

if (environment === 'production') { res.send("API em modo de produção."); } else { res.send("API em modo de desenvolvimento."); } });

// ... (código anterior) ...

Para testar, altere o valor de NODE_ENV no seu arquivo .env e reinicie o servidor. Para simular o HostGator, imagine que você estaria configurando essa variável diretamente no painel de controle.

Próximos passos: explore outras bibliotecas para gerenciar variáveis de ambiente, como o config. Aprenda a usar variáveis de ambiente em diferentes ambientes de implantação, como Docker e Kubernetes.

🚀 Pronto para a próxima aula?

Continue sua jornada no desenvolvimento de APIs e domine Node.js & Express!

📚 Ver todas as aulas