ANÚNCIO

~/questoes/programacao

Qual é a estrutura recomendada para o arquivo app.js em uma API REST?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Correção do app.js. Ordem correta de chamada do app.use(routes) #nodejs #js #api #rest #dev
Para fixar

A Ordem Correta das Middlewares e Rotas no app.js

Conceito central

No Express, a ordem em que você configura middlewares, rotas e tratadores de erros no arquivo app.js é crítica para o funcionamento correto da API. O Express processa as requisições de cima para baixo, então cada elemento deve estar no lugar certo para funcionar como esperado.

Por que essa resposta faz sentido

A ordem correta é: primeiro as middlewares globais (como body-parser e cors), depois as rotas com app.use(routes), e por fim o tratador de erros global. Isso garante que toda requisição passe pelas validações necessárias antes de ser roteada e que qualquer erro seja capturado corretamente.

Armadilhas comuns

  • Colocar app.use(routes) antes das middlewares necessárias, fazendo com que as rotas não tenham acesso aos dados processados pelas middlewares (como dados parseados ou autenticação).
  • Posicionar o tratador de erros global antes das rotas, causando erros nas rotas não serem capturados porque nunca chegam até ele.
  • Assumir que a ordem não importa ou que o Express é 'inteligente' o suficiente para entender a intenção do desenvolvedor sem seguir uma sequência lógica.

Entenda as alternativas

A

Colocar tudo em um único bloco sem organização causará comportamentos impredizíveis, dificultará a manutenção do código e impedirá que middlewares funcionem adequadamente em rotas específicas.

B

Colocar o tratador de erros em primeiro lugar não faz sentido, pois ele nunca será alcançado. As rotas que vêm depois dele lançarão erros que não serão capturados corretamente.

C

Esta é a sequência correta. Middlewares globais preparam os dados e configuram permissões, as rotas processam as requisições, e o tratador de erros no final captura qualquer problema que tenha ocorrido durante o processo.

D

Dividir rotas públicas e protegidas antes de configurar as middlewares de autenticação não garante que a autenticação funcione corretamente. A ordem das middlewares é mais importante que agrupar rotas por tipo neste estágio.

Dica prática: Use este checklist ao estruturar seu app.js: 1) Configure body-parser e cors primeiro. 2) Depois coloque middlewares de autenticação. 3) Chame app.use(routes). 4) Por último, coloque o tratador de erros com next(err). Copie e cole esse comentário no seu arquivo para não esquecer!

Revise pensando: Se você tem uma rota que precisa validar um token JWT antes de processar a requisição, em que lugar do app.js a middleware de autenticação deve estar em relação ao app.use(routes)?