🌐 Protocolo HTTP e Requisições

O HTTP (HyperText Transfer Protocol) é a linguagem que os computadores usam para conversar na internet. Quando você digita uma URL, seu navegador (Cliente) envia uma "mensagem" em HTTP para o servidor.

📝 Os 5 Verbos (Palavras) Principais

Para entender o que os computadores dizem uns aos outros, precisamos conhecer estes 5 verbos:

Verbo Ação Analogia (O exemplo da Bicicleta 🚲)
GET Buscar/Receber dados. Você pede uma bicicleta para a loja.
POST Enviar/Criar dados. Você envia seus dados para cadastrar uma nova bicicleta.
PUT Atualizar (Substituir tudo). A loja troca sua bicicleta inteira por uma nova.
PATCH Atualizar (Corrigir parte). A loja envia apenas um pneu novo para consertar o furo.
DELETE Remover dados. Você joga a bicicleta no lixo (deleta do sistema).

🛣️ Endpoints (Rotas)

Endpoints são os destinos da sua requisição. Pense neles como as "pastas" ou "endereços" dentro do seu servidor.

graph TD
    A[Navegador / Cliente] -- "GET /" --> B(Servidor: Home Page)
    A -- "GET /about" --> C(Servidor: Sobre Mim)
    A -- "GET /contact" --> D(Servidor: Contato)
    B -- "Responde HTML" --> A
    C -- "Responde HTML" --> A
    D -- "Responde HTML" --> A

🚀 Automatizando com Nodemon (Global no Windows)

Reiniciar o servidor manualmente toda vez que você muda o código é cansativo. O Nodemon vigia seus arquivos e reinicia o servidor automaticamente.

1. Instalação Global (Executar uma única vez no PowerShell):

npm install -g nodemon

2. Como rodar seu projeto:

Em vez de node index.js, use:

nodemon index.js

💻 Implementando Rotas no Express

Aqui está o código completo para criar múltiplas rotas e enviar HTML como resposta.

import express from "express";

const app = express();
const port = 3000;

// Rota Raiz (Home Page)
app.get("/", (req, res) => {
  res.send("<h1>Página Inicial</h1><p>Bem-vindo ao meu servidor!</p>");
});

// Rota Sobre (About)
app.get("/about", (req, res) => {
  res.send("<h1>Sobre Mim</h1><p>Sou um desenvolvedor aprendendo Node.js.</p>");
});

// Rota de Contato
app.get("/contact", (req, res) => {
  res.send("<h1>Contato</h1><p>Telefone: +55 11 9999-9999</p>");
});

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

🔍 Entendendo os Parâmetros: