2
respostas

[Dúvida] Erro: {"message":"Cannot read properties of null (reading '_doc') }

Olá!

Eu fui olhar o Fórum, porque as vezes alguns alunos encontram problemas similares. E eu vi dois posts com esse mesmo erro.

Mas eu estou tendo o mesmo tipo de erro e não estou conseguindo arrumar, nem com a solução apresentada, alterando o campo autor no Livro.js.

Eu fiz exatamente igual a instrutora Ju. E gostaria muito de entender o porque ela usou o ._doc e não teve esse problema, mas eu tive.

Estou compartilhando meu repositório Git, do projeto.

Por favor me ajudem a entender. Porque eu realmente não consigo entender porque o da Ju dá certo e o meu não.

No aguardo,

Obrigado

https://github.com/jhony-jhon/API-REST-livraria-node.js-Alura.git

2 respostas

E aí João,

Beleza? Então, o erro que tá dando, {"message":"Cannot read properties of null (reading '_doc')}, geralmente acontece quando você tá tentando acessar uma propriedade de algo que tá nulo, tipo null ou undefined.

Pelo código que você compartilhou, parece que o erro tá rolando nessa linha aqui:

const livroCompleto = { ...novoLivro, autor: { ...autorEncontrado._doc}};

Parece que autorEncontrado tá vindo como null ou undefined, aí quando você tenta acessar autorEncontrado._doc, dá esse erro.

Sugiro dar uma olhada na linha onde você faz:

const autorEncontrado = await autor.findById(novoLivro.autor);

Pode ser que o autor não esteja sendo encontrado no banco de dados, ou tá vindo nulo por algum motivo.

Se liga nisso, testa aí e vê se resolve.

Olá mano.

Então, o problema é que eu tô com dificuldade de entender qual o erro. Lendo em inglês a gente sabe, está dando problema de nulo ou indefinido por conta do spreadoperator acompanhado do ._doc.

Mas a pergunta que fica: Por que o da instrutora Juh não deu problema? O que acontece?

Eu revisei o código linha a linha e não acho esse erro nem o que está causando esse erro. A não ser a stacktrace do erro, mas eu não sei o que arrumar.

Pior que o próximo curso está usando o mesmo projeto e estou meio perdido agora...