1
resposta

MongooseError: Model.findById() no longer accepts a callback

Como vi na publicação de alguns colegas, com a nova atualização do mangoose não é mais possível a utilização de callbacks nessas estruturas do model. Por conta disso, não consegui fazer a lista de um livro específico por um determinado id. Meu código está com essa estrutura até o momento:

static listarLivroPorId = (req, res) => {
    const id = req.params.id;

    livros.findById(id, function (err, livro) {
    if (err){
        console.log(err);
    }
    else{
        console.log("Result : ", livro);
    }
});

Como faço a mudança para algo com try catch? Pelo o que eu li, as pessoas tem usado o Model.findOne() no lugar de Model.findByid().

1 resposta

Boa noite, Marcus!

Segue como ficou meu código

static listarLivrosPorId = async (req, res) => {
        try {
            const id = req.params.id;
    
            const livroEncontrado = await livros.findById(id);
            res.status(200).send(livroEncontrado);
        } catch (err) {
            res.status(400).send({ message: `Erro ao buscar livro por ID: ${err.message}` });
        }
    }