Bom dia, não consegui resolve, alguem poderia me ajudar por favor ?
https://github.com/eduardoaugustopp/ExpressMongoDbAPiRest-exercicio1-carros
Bom dia, não consegui resolve, alguem poderia me ajudar por favor ?
https://github.com/eduardoaugustopp/ExpressMongoDbAPiRest-exercicio1-carros
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` });
}
}