devterview_$ iniciar simulação

`express.Router` e organização de rotas

FácilJúniorOrganização

Pergunta

Como `express.Router` ajuda a organizar uma API que cresceu, e o que montar num router x no app?

Resposta esperada

`express.Router()` é um mini-app: você define rotas e middleware nele e o 'monta' num prefixo (`app.use('/usuarios', usuariosRouter)`). Ganhos: cada recurso/feature vira um arquivo (`routes/usuarios.ts`) com suas rotas e middleware locais (auth, validação específica), o `index` só faz o wiring, e o prefixo fica num lugar só (mudar `/usuarios` pra `/v2/usuarios` é uma linha). Middleware montado no app (`app.use(helmet())`, body parser, request id, CORS) vale pra tudo e vem antes dos routers; middleware montado num router vale só pra aquele grupo. O error handler e o 404 ficam no app, depois de todos os routers. Antipadrão: um `routes.ts` de 2000 linhas com tudo, ou lógica de negócio dentro do arquivo de rota (a rota deveria só validar, chamar um serviço e responder).

Por que perguntam isso

Pergunta pleno de Express. Sinal bom: 'middleware do app vale pra tudo, do router só pro grupo' e 'lógica de negócio não fica na rota'.

#router#organizacao#modularizacao
publicidade

Perguntas de acompanhamento

Relacionadas