~/questoes/programacao
No Express, a ordem em que você declara middlewares e rotas no app.js é fundamental porque o framework processa as requisições sequencialmente, de cima para baixo. Middlewares de validação devem sempre vir antes de app.use(routes) para garantir que os dados sejam processados e validados antes de chegar às rotas.
A alternativa C está correta porque o objetivo principal de colocar middlewares de validação antes de app.use(routes) é garantir que todas as rotas recebam dados já validados e seguros. Isso previne que dados inválidos ou malformados chegem aos seus controladores e bancos de dados.
Essa alternativa é falsa. O Express não descarta automaticamente middlewares após app.use(routes). O que acontece é que middlewares declaradas depois de app.use(routes) não são aplicadas às rotas, porque a requisição já foi processada antes de chegar nelas.
Essa alternativa não é a razão principal. Embora middlewares precisem estar no código antes da execução, a questão não é sobre quando o servidor inicia, mas sobre a ordem de processamento das requisições durante sua execução.
Essa é a resposta correta. Middlewares de validação validam e limpam os dados antes que as rotas os recebam. Isso garante integridade dos dados, melhora a segurança e evita que dados inválidos cheguem aos seus controladores.
Essa alternativa está incorreta. Os erros de validação não aparecem apenas no console do servidor. Quando configuradas corretamente, as middlewares de validação devem enviar respostas de erro apropriadas ao cliente (com status 400 ou similar).