1
resposta

Dúvida sobre as rotas

Notei que nessa aula ao definir a nova rota para cursos lotados o novo método "get" ficou abaixo de uma rota também de "get" porém a rota anterior possui uma variável ":estudant_id", em outras aulas foi priorizado a ordenar por complexidade, já q o express pode considerar a rota seguindo como um valor da variável, isso pode acontecer definindo a rota da forma que foi feita na aula?

1 resposta

Oii Marllon, tudo bem?

No Express, a ordem em que você define suas rotas realmente importa. Se uma rota com um parâmetro (como :estudant_id) é definida antes de uma rota estática (como /matriculas/lotadas), o Express pode interpretar a rota estática como um valor para o parâmetro da primeira rota.

Por exemplo, se tivéssemos as rotas definidas na seguinte ordem:

  1. router.get('/pessoas/:estudant_id', callback);
  2. router.get('/pessoas/matriculas/lotadas', callback);

E tentássemos acessar a rota /pessoas/matriculas/lotadas, o Express interpretaria matriculas/lotadas como um valor para :estudant_id na primeira rota, o que provavelmente não é o comportamento desejado.

No entanto, na atividade que você mencionou, a nova rota /pessoas/matriculas/lotadas foi adicionada após a rota /matricula/confirmadas, que não possui nenhum parâmetro. Portanto, não haveria conflito entre essas duas rotas, independentemente da ordem em que foram definidas.

Ainda assim, para evitar confusões, é uma boa prática definir rotas mais específicas (como as que contêm parâmetros) após rotas mais genéricas. Isso garante que as rotas genéricas não interceptem solicitações que deveriam ser tratadas por rotas mais específicas.

Um abraço e bons estudos.