3
respostas

Método Model.find() - DESCONTINUADO

Eu estava realizando todos os passos da professora, porém o método find, do mongoose, que ela usa no app.js não aceita mais uma callback como argumento, essa forma de uso foi descontinuada nas versões mais recentes do Mongoose.

Forma ensinada no vídeo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Possíveis soluções: atualização do código parar usar promises ou a *sintaxe de função assíncrona *

1) sintaxe de função assíncrona:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2) Promises:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Acredito que isso aconteceu comigo, porque estou usando as versões mais recentes, espero que ajude alguém com o mesmo problema :)

3 respostas

Olá Romulo! Tudo bem com você?

Obrigado por compartilhar essa informação conosco. É importante sempre estar atualizado sobre as mudanças nas bibliotecas que utilizamos em nossos projetos.

Realmente, o método find do Mongoose não aceita mais uma callback como argumento nas versões mais recentes. Mas, como você mencionou, existem outras formas de utilizá-lo, como a sintaxe de função assíncrona ou Promises.

As soluções que você apresentou parecem ótimas e devem funcionar bem. É sempre importante lembrar que, ao lidar com Promises, devemos tratar possíveis erros com o catch, para evitar que nosso código quebre.

Espero que continue assim, empenhado e compartilhando informações com a comunidade, e caso tenha dúvidas recorra ao fórum, contamos com uma grande comunidade que pode lhe ajudar.

No mais, grande abraço e bons estudos!

Olá ! Observando o problema e a solução gostei da número 1) utilizando a sintaxe de função assíncrona, porém eu declararia a minha const livros = await livros.find() por outro nome para não dar conflito com o import de livros no meu caso ficou assim const meusLivros = await livros.find()

obrigado amigos, estava com problemas para continuar e deu certo, mas somente criando a const meusLivros deixando o código assim, da maneira do primeiro exemplo ele ocasiona em um erro, no import de livros como observado a cima

** app.get('/livros', async (req, res) => { try{ const meuLivros = await livros.find() res.status(200).json(meuLivros) } catch(err){ //lida com erro console.log(err) res.status(500).json({ error: 'Ocorreu um erro ao buscar os livros'}) } })**