1
resposta

[Sugestão] Solucao para quem está usando o mongoose atualizado; MongooseError no longer accepts a callback at Function.find

O meu ficava dando esse erro: MongooseError no longer accepts a callback at Function.find Para resolver eu usei Async/await

    static listarProdutos = async (req, res)=>{
        try{
            const TodosProdutos = await produtos.find();
            res.status(200).json(TodosProdutos)
        } catch (err){
            res.status(500).json(err);
         } 
        }
        static cadastrarProduto = async (req, res) =>{
            try{
                let produto = await new produtos(req.body) ;
                produto.save();
                res.status(201).send(produto.toJSON());
            }catch(err){
                res.status(500).send({message:`${err} falha ao cadastrar o produto`});
            }
        }

        static atualizarProduto = async (req, res) =>{
            try{
                const id = req.params.id;
               await produtos.findByIdAndUpdate(id, {$set: req.body});
                res.status(201).send({message:`Produto com o id: ${id} foi atualizado com sucesso`});
            }catch(err){
                res.status(500).send({message:`${err} falha ao atualizar produto`});
            }
        }

}

Nao sei se está correto, mas aqui funcionou : )

1 resposta

Olá Diogo!

Obrigado por compartilhar sua solução conosco! Realmente, o erro "MongooseError no longer accepts a callback at Function.find" pode ser resolvido utilizando Async/await, como você fez em seu código.

Basicamente, Async/await é uma maneira de escrever código assíncrono de forma mais clara e legível. Ao usar o "await", você pode esperar que uma operação assíncrona seja concluída antes de continuar com o restante do código.

No seu exemplo, você utilizou o "await" para aguardar o resultado da operação "produtos.find()", que é uma operação assíncrona, antes de continuar com o restante do código.

Portanto, sua solução está correta e deve funcionar bem para quem estiver enfrentando o mesmo problema.

Espero ter ajudado e bons estudos!