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


Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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` });
}
}