Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 44 – API JavaScript, Node.js e Express – Environment Configuration – development vs production

Imagem destacada da aula de API

Introdução (3 min)

Imagine uma fábrica de bolos. Você tem a receita (seu código) e os ingredientes (seus dados). Para produzir bolos para seus clientes (ambiente de produção), você precisa de uma cozinha totalmente equipada e limpa (servidor de produção). Mas, durante o desenvolvimento da receita, você usa uma cozinha de testes (ambiente de desenvolvimento), onde pode experimentar, errar e ajustar sem afetar a produção.

Configurar diferentes ambientes é estratégico para APIs modernas porque garante estabilidade, segurança e flexibilidade. Nesta aula, você compreenderá a diferença vital entre ambientes de desenvolvimento e produção em Node.js/Express, aprendendo a configurá-los de forma profissional.

No contexto Node.js/Express, esses ambientes permitem isolar as configurações específicas de cada estágio do desenvolvimento da sua API.

Conceito Fundamental (7 min)

Um ambiente define um conjunto de configurações e recursos disponíveis para sua aplicação. O ambiente de desenvolvimento é onde você codifica, testa e depura. Já o ambiente de produção é onde sua API roda efetivamente, servindo aos usuários finais.

Um caso de uso real é uma API que se conecta a um banco de dados. No desenvolvimento, você pode usar um banco de dados de teste com dados fictícios. Em produção, a API se conecta ao banco de dados real com dados reais dos usuários.

Essa prática se integra com tecnologias como Docker e Kubernetes, facilitando a gestão e o deploy de diferentes ambientes. As vantagens incluem: isolamento de código, maior segurança e facilidade de testes. A principal desvantagem é a complexidade adicional na configuração.

Implementação Prática (10 min)

Vamos criar um exemplo prático. Usaremos variáveis de ambiente para configurar a porta do servidor:

// index.js
const express = require('express');
const app = express();

// Porta do servidor, definida por variável de ambiente ou padrão 3000 const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => { const environment = process.env.NODE_ENV || 'development'; res.send(Olá do ambiente ${environment} na porta ${PORT}!); });

// Error handling básico app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Algo deu errado!'); });

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


Configurando a porta para o ambiente de desenvolvimento (no terminal)

📚 Informações da Aula

Curso: API Completo - Node.js & Express

Tempo estimado: 25 minutos

Pré-requisitos: JavaScript básico

NODE_ENV=development PORT=3001 node index.js

Configurando a porta para o ambiente de produção (no terminal, simulando HostGator Plano M)

NODE_ENV=production PORT=8080 node index.js

No HostGator Plano M, você pode configurar variáveis de ambiente diretamente no painel de controle, na seção “Variáveis de Ambiente”.

Este código implementa um servidor Express simples. A porta é definida pela variável de ambiente PORT. Se PORT não estiver definida, o valor padrão 3000 é usado. A variável NODE_ENV define o ambiente. Incluímos também um error handling básico e logs no console.

Exercício Hands-On (5 min)

Desafio: Modifique o código para exibir uma mensagem diferente dependendo do ambiente (desenvolvimento ou produção).

Solução:

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

app.get('/', (req, res) => { const environment = process.env.NODE_ENV || 'development'; const message = environment === 'production' ? 'Bem-vindo à nossa API!' : 'Olá do ambiente de desenvolvimento!'; res.send(message); });

// ... (resto do código) ...

Teste: Execute o código com NODE_ENV=development node index.js e NODE_ENV=production node index.js. Observe as diferentes mensagens.

Troubleshooting: Se o servidor não iniciar, verifique se o Node.js está instalado e se a porta não está em uso.

Próximos passos: Explore bibliotecas como dotenv para gerenciar variáveis de ambiente de forma mais eficiente e segura.

🚀 Pronto para a próxima aula?

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

📚 Ver todas as aulas