2
respostas

[Dúvida] "message": "Cannot read properties of null (reading '_doc') - falha ao cadastrar carro"

Bom dia, não consegui resolve, alguem poderia me ajudar por favor ? https://github.com/eduardoaugustopp/ExpressMongoDbAPiRest-exercicio1-carros Carro criado no bancoIdentificador criado no PostmanErro

2 respostas

Opa, blz?

Então esse problema que você está tendo é um problema bem comum. A boa noticia é que é facil de resolver, bem o erro ocorre porque você está tentando acessar uma propriedade de uma variavel nula.

Explicando melhor, esse é um trecho que codigo que replica o erro:

var x = null
console.log(x.valor);

Você não consegue acessar a propriedade "valor" em x pois x é nulo. Logo não possui a propriedade.

uma solução possivel seria usar o operador (?) antes de tentar acessar uma propriedade de um objeto que pode ser nulo.

Exemplo:

var x = null
console.log(x?.valor);

Percebe a diferênça? Assim o seu codigo não retornará mais uma exceção. Porém isso não garante também que funcionrá como deveria. Deve-se sempre avaliar a logica por trás do que deseja fazer e entender formas de trabalhar com valores nullables.

Eu estava com esse mesmo problema e resolvi dessa forma:

     static async cadastrarLivros(req, res) {
         const novoLivro = req.body;
         try {
             const autorEncontrado = await Autor.findById(novoLivro.autor);
             let autorId = autorEncontrado._id;
             const livroCompleto = { ...novoLivro, autor: autorId };
             const livroCriado = await Livro.create(livroCompleto);
             res.status(201).json({ message: "Criado com sucesso", livro: livroCriado });
         } catch (error) {
             res.status(500).json({ message: `${error.message} - falha ao cadastrar livro` });
         }
     }