O Superpoder das Requisições em Express! (Middleware) 🦸♂️✨
Eu sei que o titulo foi meio exagerado, mas middleware é uma parte fundamental do framework Express, permitindo o gerenciamento de requisições e respostas em aplicações web. Aqui estão os principais pontos:
O que é Middleware?
Middleware são funções que acessam os objetos de requisição (req
), resposta (res
) e a próxima função no ciclo de requisição-resposta. Elas podem:
- Executar código.
- Modificar
req
eres
. - Encerrar o ciclo de requisição-resposta.
- Chamar a próxima função middleware usando
next()
.
Tipos de Middleware
- Application-level: Ligado a uma instância do aplicativo.
- Router-level: Ligado a um roteador específico.
- Error-handling: Para tratar erros, sempre com quatro parâmetros:
(err, req, res, next)
. - Built-in: Funções integradas como
express.json()
eexpress.static()
. - Third-party: Middleware de terceiros que adiciona funcionalidades.
Exemplos
Middleware de Aplicação
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});
Middleware de Roteador
const router = express.Router();
router.use((req, res, next) => {
console.log('Request URL:', req.originalUrl);
next();
});
Middleware de Erro
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Algo deu errado!');
});
Curiosidades
- Ordem Importa: Middleware é executado na ordem em que é definido.
- Reutilização: É possível usar arrays para declarar middleware reutilizável.
- Ignorar Middleware: Use
next('route')
para pular para a próxima rota.