Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] ValidationError nunca é executado

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"}); } }

1 resposta
solução!

consegui arrumar!