Eu fiz o código exatamente como no video, mas na hora de executar no Postman, testando inserir um objeto vazio em Autor por exemplo, ele dá erro interno de servidor, ao invés do ValidationError. Vou deixar os códigos:
Autor.js: import mongoose from "mongoose";
const autorSchema = new mongoose.Schema({ id: { type: mongoose.Schema.Types.ObjectId }, nome: { type: String, required: [true, "o nome do autor é obrigatorio"]}, nacionalidade: { type: String } }, { versionKey: false });
const autor = mongoose.model("autores", autorSchema);
export { autor, autorSchema };
manipuladordeerro.js: import mongoose from "mongoose";
// eslint-disable-next-line no-unused-vars
function manipuladordeerro(erro, req, res, next){
if (erro instanceof mongoose.Error.CastError){
res.status(400).send({
message: "dado incorreto"});
} else if(erro instanceof mongoose.Error.ValidationError){
const mensagenserro = Object.values(erro.errors)
.map(erro => erro.message)
.join("; ");
res.status(400).send({
message: erros: ${mensagenserro}
});
} else {
res.status(500).send({message: "erro interno de servidor"});
}
}