Capítulo 15: Meu Primeiro Servidor Web 🌐🔬
Parabéns por chegar até aqui! Neste capítulo, vamos usar tudo o que aprendemos para criar um Servidor Web real que responde a requisições, com o tema Rick and Morty!
📖 O que é um Servidor Web?
Um servidor web é um computador (ou um programa) que fica esperando conexões de outros computadores (clientes) através da internet. Quando você acessa um site, seu navegador faz uma requisição ao servidor, que responde com a página.
Vamos usar o módulo nativo http do Node.js para criar o portal dimensional do Rick!
📖 Exemplo Guiado: O Portal do Rick
Vamos criar um servidor que, quando acessado, responde com uma dimensão aleatória!
- Crie o arquivo
portal_server.jsna pastasrc/:
const http = require('http');
// Criando o servidor
const server = http.createServer((req, res) => {
// Definindo o cabeçalho da resposta como texto
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
// Gerando dimensão aleatória
const dimensao = Math.floor(Math.random() * 100) + 1;
// Enviando a resposta
res.end(`Rick ajustou a Arma de Portais!\nVoce caiu na Dimensao C-${dimensao}`);
});
// O servidor fica escutando na porta 3000
server.listen(3000, () => {
console.log("Portal interdimensional aberto em http://localhost:3000");
console.log("Pressione Ctrl+C para fechar.");
});🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado e execute:
node portal_server.js - Abra o seu navegador web (Chrome, Edge, etc.) e digite na barra de endereços:
http://localhost:3000 - Atualize a página para cair em dimensões diferentes!
📊 Ilustração Visual: Comunicação Cliente/Servidor
Veja como a internet funciona:
sequenceDiagram participant N as Seu Navegador (Cliente) participant S as Servidor Node.js N->>S: Requisição HTTP (Acessa localhost:3000) S-->>N: Resposta HTTP ("Você caiu na Dimensão C-XX")
🛠️ Prática Obrigatória 1: Mudando a Rota
Pesquise como verificar a URL que o usuário acessou usando req.url. Faça com que, se ele acessar http://localhost:3000/rick, o servidor responda “Wubba Lubba Dub Dub!“. Se acessar qualquer outra coisa, continue mostrando a dimensão aleatória.
🔑 Gabarito de Código
Prática 1: server_rotas.js
const http = require('http');
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
if (req.url === '/rick') {
res.end("Wubba Lubba Dub Dub!");
} else {
const dimensao = Math.floor(Math.random() * 100) + 1;
res.end(`Rick ajustou a Arma de Portais!\nVoce caiu na Dimensao C-${dimensao}`);
}
});
server.listen(3000, () => {
console.log("Servidor rodando em http://localhost:3000");
});📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o padrão estabelecido no Guia)