Olá Vitor, tudo bem?
Eu fiz o clone do seu repositório para te ajudar e identifiquei o problema. Mas antes de te dizer o que aconteceu, vou te mostrar como descobri o problema pois isto pode ser útil para você no futuro.
Ao acessar a rota /livros
, o servidor nos está respondendo com uma página de erro, portanto o código que está sendo executado está no src/config/custom-express.js
que é onde está configurado o tratamento de erros:
app.use(function(erro,req,resp,next){
return resp.status(500).marko(require('../app/views/base/erros/500.marko'))
})
Note que o primeiro parâmetro da função é chamado de erro
, ou seja, podemos inspecionar o erro não tratado usando um console.log
. Eu modifiquei esta função para eu conseguir identificar o problema e ficou assim:
app.use(function(erro,req,resp,next){
console.log(erro);
return resp.status(500).marko(require('../app/views/base/erros/500.marko'))
})
Após acessar a rota /livros
novamente, vi que apareceu a seguinte mensagem no console: ReferenceError: LivroDao is not defined
. Portanto em algum lugar o LivroDao
não foi criado corretamente.
Como a rota /livros
é executada pelo LivrosControlador.lista()
, olhei este arquivo e faltou o require
do ../infra/livroDao
, assim como o require
do ../../config/database
.
Então adicionei as seguintes linhas no começo do arquivo src/app/controladores/controladores.js
:
const LivroDao = require('../infra/livroDao');
const db = require('../../config/database');
E a listagem de livros voltou a funcionar normalmente :)
Obs: Estes require
estavam no src/app/rotas/rotas.js
, mas sem uso, então imagino que no exercício de criar o controlador, faltou colocar estas linhas arquivo do controlador.