Ao fazer o post vazio no Postman sempre aparece a mensagem "Erro interno no servidor" e não a mensagem Os seguinte erros foram encontrados: ${mensagensErro}
do else if. Isto é, ao fazer a requisição não é feita a validação como é mostrada na aula. Gostaria de ajuda para resolver este problema.
manipuladorDeErros.js
/* eslint-disable no-unused-vars */
import mongoose from "mongoose";
function manipuladorDeErros (erro, req, res, next) {
if (erro instanceof mongoose.Error.CastError) {
res.status(400).send({message: "Um ou mais dados fornecidos estão incorretos."});
} else if (erro instanceof mongoose.Error.ValidationError) {
const mensagensErro = Object.values(erro.errors)
.map(erro => erro.message)
.join("; ");
res.status(400).send({ message: `Os seguinte erros foram encontrados: ${mensagensErro}` });
}
else {
res.status(500).send({message: "Erro interno de servidor."});
}
}
export default manipuladorDeErros;
Autor.js
import mongoose from "mongoose";
const autorSchema = new mongoose.Schema(
{
id: {type: String},
nome: {
type: String,
required: [true, "O nome do(a) autor(a) é obrigatório"]},
nacionalidade: {type: String}
},
{
versionKey: false
}
);
const autores = mongoose.model("autores", autorSchema);
export default autores;
autoresController.js
static cadastrarAutor = async (req, res, next) => {
try {
let autor = new autores(req.body);
const autorResultado = await autor.save();
res.status(201).send(autorResultado.toJSON());
} catch (erro) {
next(erro);
}
};