No projeto da API Rest em Node.js, na parte de tratamento de erros nos metodos listarAutorPorID e listarLivroPorID nos arquivos Controller, eu implementei uma forma um pouco diferente da forma passada em aula, com um pouco mais de detalhes, fiz os testes no postman e deu tudo certo.
Dentro do try, catch ficara assim:
try {
const id = req.params.id;
// Valida se o ID fornecido é válido no formato MongoDB
// Verificação se o ID é válido usando o método do Mongoose
if (!mongoose.Types.ObjectId.isValid(id)) {
return res.status(400).json({ message: "ID inválido" });
}
const autorEncontrado = await autor.findById(id);
// Verifica se o autor foi encontrado
if (!autorEncontrado) {
return res.status(404).json({ message: "Autor não encontrado" });
}
res.status(200).json(autorEncontrado);
} catch (erro) {
// Caso o erro seja interno no servidor (falha de conexão, etc.)
res.status(500).json({ message: `${erro.message} - Erro interno no servidor` });
}
A estrutura vai ser a mesma para os dois metodos, livro e autor, só mudar os nomes.