Uso de express.Router para modularizar rotas
O que é express.Router?
O express.Router é uma classe do Express que permite criar manipuladores de rotas modulares e montáveis. Ele funciona como uma “mini-aplicação” ou um middleware completo que pode ter as suas próprias rotas, middlewares e lógica própria, facilitando a organização do código em aplicações maiores.
Por que modularizar rotas?
- Facilita a manutenção e organização do código.
- Permite separar as rotas por funcionalidades ou domínios (ex: rotas de usuários, rotas de produtos, etc).
- Reduz redundâncias ao agrupar rotas relacionadas.
- Facilita a reutilização e testes de módulos de rota.
Como usar o express.Router para modularizar rotas?
Passo 1: Criar um módulo de rotas
Crie um ficheiro para um conjunto de rotas, por exemplo passaros.js:
const express = require('express');
const router = express.Router();
// Middleware específico para este roteador (exemplo: log de tempo)
router.use((req, res, next) => {
  console.log('Hora: ', Date.now());
  next();
});
// Define a rota raiz deste roteador
router.get('/', (req, res) => {
  res.send('Página inicial dos pássaros');
});
// Define outra rota dentro deste roteador
router.get('/ajuda', (req, res) => {
  res.send('Página de ajuda dos pássaros');
});
module.exports = router;
Passo 2: Usar o módulo de rotas na aplicação principal
No arquivo principal da aplicação (app.js), importe o roteador e monte-o em um caminho específico:
const express = require('express');
const app = express();
const passarosRouter = require('./passaros');
// Monta o roteador em /passaros
app.use('/passaros', passarosRouter);
app.listen(3000, () => {
  console.log('Servidor rodando na porta 3000');
});
Resultado
Com essa configuração, o servidor responde às requisições:
- GET /passaros→ “Página inicial dos pássaros”
- GET /passaros/ajuda→ “Página de ajuda dos pássaros”
Além disso, o middleware do roteador será executado para essas rotas, exibindo o timestamp no console.
Resumo das etapas
- Use express.Router()para criar um roteador modular.
- Defina rotas nesse roteador como se fosse um mini-app.
- Exporte o roteador do módulo.
- Importe o roteador no arquivo principal e use app.use(caminho, roteador)para montar as rotas.
- Para rotas grandes, crie tantos módulos de roteadores quanto precisar, um para cada área funcional.
Esse padrão é uma prática recomendada para manter o código de APIs e aplicações Express limpos, escaláveis e organizados.
