Rota existe no código mas devolve 404: verificar se foi registrada no app principal


Em apps Express organizados por módulo de rota (routes/admin.js, routes/auth.js…), é fácil criar um arquivo de rotas inteiro, com toda a lógica certa, e esquecer de conectá-lo no arquivo principal:

// routes/admin.js — está correto, mas sozinho não serve pra nada
router.get('/pending-payments', auth, adminAuth, async (req, res) => { /* ... */ });
module.exports = router;

// index.js — SEM esta linha, toda rota de admin.js devolve 404:
app.use('/api/admin', require('./routes/admin'));

Sintoma: a rota devolve 404 Cannot GET ... mesmo com o código “certo” — porque o Express nunca chegou a carregar aquele router. Vale conferir com um grep simples sempre que uma funcionalidade “devia existir” mas não responde:

grep -n "require('./routes" index.js

Esse tipo de gap também aparece quando o deploy manual (scp de arquivos avulsos) esquece de subir o index.js atualizado junto com o novo arquivo de rota — o código local está certo, mas o servidor está rodando uma versão antiga do arquivo principal.