Quando tento popular a editora também esta me retornando o seguinte erro:
LivroController.js
import livros from "../models/Livro.js";
class LivroController{
static listarLivros = (req, res) => {
livros.find()
.populate('Autor')
.populate('Editoria')
.exec((err,livros) => {
if (err){
console.log('algo deu errado', err)
}
res.status(200).json(livros)
});
}
static cadastrarLivro = (req, res) => {
let livro = new livros(req.body);
livro.save((err) => {
if(err){
res.status(500).send({message: `${err.message} - falha a cadastrar o livro`})
}else {
res.status(201).send(livro.toJSON())
}
})
};
static atualizarLivro = (req, res) => {
const id = req.params.id
livros.findByIdAndUpdate(id, {$set: req.body}, (err) =>{
if (!err){
res.status(200).send({message:"livro alterado com sucesso "})
}else {
res.status(500).send({message: err.message}, console.log('algo deu errado na atualização'))
}
})
}
static buscaLivroID = (req, res) =>{
const id = req.params.id
livros.findById(id)
.populate("Autor", 'nome')
.exec((err, livros) =>{
if(!err){
res.status(200).send(livros)
}else {
res.status(400).send({message: err.message})
}
})
}
static excluirLivro = (req, res) =>{
const id = req.params.id
livros.findByIdAndDelete(id, (err) => {
if(!err){
res.status(200).send({message: "Livro removido com sucesso"})
} else{
res.status(500).send({message: err.message})
}
})
}
}
export default LivroController;
Models/ livro.js
import mongoose from "mongoose";
const livroSchema = new mongoose.Schema(
{
id: {type: String},
nome: {type: String, required: true},
Autor: {type: mongoose.Schema.Types.ObjectId, ref: 'autores', required: true},
Editoria: {type: mongoose.Schema.Types.ObjectId, ref: 'editoras', required: true},
Paginas: {type: Number}
}
);
const livros = mongoose.model('livros', livroSchema);
export default livros;