Fala pessoal!
Quem estiver usando a versão mais nova do Mongoose no projeto pode estar enfrentando problemas com a chamada de callbacks e usando Guard Clauses como a professor do curso usou.
Isso é porque eles mudaram o padrão para promessas, então usando o método "listarLivroPorId" do modelo Livros, ficaria assim:
static listarLivroPorId = (req, res) => {
const id = req.params.id;
livros.findById(id)
.populate('autor') // Popula a informação do autor
.then(livro=>{ // Se a promessa resolver corretamente
res.status(200).json(livro);
})
.catch(error => {
res.status(500).send({message: `${error.message} - falha ao buscar livro.`});
})
}