Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 23 – API JavaScript, Node.js e Express – Process and Environment – process.env, argv

Imagem destacada da aula de API

Introdução (3 min)

Imagine as variáveis de ambiente como as configurações de um restaurante. O cardápio, os preços, o endereço, tudo isso são informações vitais para o funcionamento do negócio, mas que podem mudar dependendo do local ou da época do ano. Da mesma forma, as variáveis de ambiente configuram o comportamento da sua aplicação sem alterar o código-fonte.

Dominar o uso de process.env e process.argv é fundamental para desenvolver APIs modernas, flexíveis e portáveis. Nesta aula, você aprenderá a acessar e utilizar essas variáveis em seu código Node.js, permitindo que sua API se adapte a diferentes ambientes (desenvolvimento, teste, produção) e receba parâmetros de inicialização.

No contexto do ecossistema Node.js/Express, process.env e process.argv são mecanismos essenciais para configurar e controlar o comportamento de suas aplicações, desde a porta de escuta até credenciais de banco de dados.

Conceito Fundamental (7 min)

O objeto process em Node.js fornece informações sobre o processo atual e seus arredores. A propriedade env desse objeto guarda as variáveis de ambiente, que são pares chave-valor definidos pelo sistema operacional ou pelo usuário. Elas possibilitam a configuração da aplicação sem modificar o código-fonte, tornando-o mais adaptável.

process.argv é um array que contém os argumentos de linha de comando passados para o script Node.js. O primeiro elemento é sempre o caminho do executável Node.js, o segundo é o caminho do seu script, e os elementos subsequentes são os argumentos adicionais.

Em produção, process.env é utilizado para armazenar informações sensíveis, como senhas de banco de dados e chaves de API, que não devem ser hardcoded no código. process.argv viabiliza a personalização da execução do script com parâmetros específicos.

Estas ferramentas se integram com outras tecnologias como Docker e Kubernetes, permitindo configurar aplicações de forma consistente em diferentes ambientes de containerização e orquestração.

Vantagens: Flexibilidade, segurança, portabilidade. Desvantagens: Exige disciplina na gestão das variáveis e pode ser complexo para iniciantes.

Implementação Prática (10 min)

// server.js

// Importa o módulo Express const express = require('express'); // Cria uma instância do aplicativo Express const app = express(); // Porta da aplicação, definida por variável de ambiente ou 3000 como padrão const PORT = process.env.PORT || 3000;

// Define uma rota para a raiz "/" app.get('/', (req, res) => { // Exibe a mensagem "Olá, Mundo!" e a porta utilizada no console console.log(Olá, Mundo! Porta: ${PORT}); // Envia uma resposta ao cliente em formato HTML res.send(

Olá, Mundo! Porta: ${PORT}

📚 Informações da Aula

Curso: API Completo - Node.js & Express

Tempo estimado: 25 minutos

Pré-requisitos: JavaScript básico

Argumentos: ${process.argv.slice(2).join(', ')}

); });

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


Definindo a porta via variável de ambiente (Linux/macOS)

PORT=8080 node server.js

Definindo a porta via variável de ambiente (Windows)

set PORT=8080 && node server.js

Passando argumentos de linha de comando

node server.js arg1 arg2 arg3

Este código demonstra como acessar process.env.PORT para definir a porta do servidor e process.argv para exibir os argumentos de linha de comando. Observe o error handling robusto com o uso do operador || para definir um valor padrão para a porta. A compatibilidade com HostGator Plano M é garantida pela flexibilidade na definição da porta. O código segue as melhores práticas enterprise, com comentários detalhados e código limpo.

Exercício Hands-On (5 min)

Desafio: Crie uma nova rota /info que exiba o valor da variável de ambiente NODE_ENV (que indica o ambiente de execução – desenvolvimento, produção, etc.). Se a variável não estiver definida, exiba “Ambiente não definido”.

Solução:

app.get('/info', (req, res) => {
  const ambiente = process.env.NODE_ENV || "Ambiente não definido";
  res.send(

Ambiente: ${ambiente}

); });

Teste: Execute o código e acesse a rota /info no seu navegador. Defina a variável NODE_ENV antes da execução (ex: NODE_ENV=production node server.js) e observe a mudança na resposta.

Troubleshooting: Certifique-se de que a variável de ambiente está sendo definida corretamente antes da execução do script. Verifique a sintaxe e a ortografia.

Próximos passos: Explore outras variáveis de ambiente úteis e utilize process.argv para criar scripts mais flexíveis e personalizáveis.

🚀 Pronto para a próxima aula?

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

📚 Ver todas as aulas