AULA 45
MÓDULO 6
backend Node.js
⏱ 50 min
Servidor HTTP Nativo
Módulo http nativo. Request como Stream: ler body com eventos. Router manual. O que Express abstrai.
httpcreateServerIncomingMessageServerResponsestreambody parser
Servidor HTTP com módulo nativo
Antes de usar Express, vale entender o módulo http nativo do Node. Express é uma abstração sobre ele. Saber o que há embaixo torna você um developer mais completo.
por que aprender o nativo
Quando você debugar um problema de performance ou precisar de controle total sobre headers, saber o que o Express faz internamente é fundamental.Request e Response em profundidade
O objeto IncomingMessage (req) e ServerResponse (res) são streams. Entender isso explica por que ler o body precisa de await/acumulação.
Express vs nativo
Express adiciona: router, middleware stack, body parser, melhor API de resposta, tratamento de erros. Para 99% dos projetos, use Express. Para entender o fundamento, estude o nativo.
javascript
// Servidor HTTP nativo — sem frameworks const http = require('http') const { URL } = require('url') const server = http.createServer(async (req, res) => { const url = new URL(req.url, `http://${req.headers.host}`) // Ler body (req é stream) const readBody = () => new Promise((resolve) => { let body = '' req.on('data', chunk => body += chunk) req.on('end', () => resolve(body)) }) // Router manual if (req.method === 'GET' && url.pathname === '/users') { res.writeHead(200, { 'Content-Type': 'application/json' }) res.end(JSON.stringify([{ id: 1, name: 'Ana' }])) } else if (req.method === 'POST' && url.pathname === '/users') { const body = await readBody() const data = JSON.parse(body) res.writeHead(201, { 'Content-Type': 'application/json' }) res.end(JSON.stringify({ id: 2, ...data })) } else { res.writeHead(404) res.end(JSON.stringify({ error: 'Not found' })) } }) server.listen(3000)
quiz · aula 45
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Por que ler o body do req.http nativo precisa de acumulação?
QUESTÃO 02
O que Express adiciona sobre o módulo http nativo?
QUESTÃO 03
Para criar um servidor HTTP nativo em Node.js, você usa...
0/3