Como eu faço para ter o autor como um dado obrigatório, do jeito que eu estou fazendo não esta funcionando?
import mongoose from "mongoose";
import { autorSchema } from "./Autor.js";
const livroSchema = new mongoose.Schema({
id: { type: mongoose.Schema.Types.ObjectId },
titulo: { type: String,
require: [true, "O titulo do livro é obrigatório"]
},
editora: {
type: String,
required: [true, "A editora é obrigatória "]
},
preco: { type: Number },
paginas: { type: Number },
autor: {
type: autorSchema,
required: [true, "O autor é obrigatório"]
}
}, { versionKey: false });
const livro = mongoose.model("livros", livroSchema);
export default livro;
import mongoose from "mongoose";
// eslint-disable-next-line no-unused-vars
function manipuladorDeErros(erro, req, res, next) {
if(erro instanceof mongoose.Error.CastError) {
res.status(500).json({ 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).json({ message: `Os seguintes erros foram encontrados: ${mensagensErro}` });
} else {
res.status(500).json({ message: "Erro interno no servidor." });
}
}
export default manipuladorDeErros;