У меня есть схема ресторана и схема отзывов .... всякий раз, когда я пытаюсь включить обзор в базу данных mon goose, используя метод create (), он выдает ошибку как:
ObjectParameterError: Параметр "obj" для Document () должен быть объектом, получившим очень дорогое место в новом ObjectParameterError (/workspace/groomIDE-setup123/restaurants/node_modules/mongoose/lib/error/objectParameter.js:25:11 )
мои схемы выглядят следующим образом:
var restSchema = new mongoose.Schema({
title: String,
review: String,
image: String,
reviews:[{
type:mongoose.Schema.Types.ObjectId,
ref:"Review"
}
]
})
var reviewSchema = new mongoose.Schema({
author:{
id:{
type:mongoose.Schema.Types.ObjectId,
ref:"User"
},
username:String
},
review:String
});
Путь для создания и просмотра нового обзора выглядит следующим образом:
app.post("/restaurants/:id/reviews",(req,res)=>{
Restaurant.findById(req.params.id,(err,foundRestaurant)=>{
if(err)
console.log(err);
else
Review.create(req.body.comment,(err,newReview)=>{
if(err)
console.log(err);
else{
newReview.author.id=req.user._id;
newReview.author.username=req.user.username;
newReview.save();
foundRestaurant.reviews.push(newReview);
foundRestaurant.save();
// res.redirect("/restaurants/"+req.params.id);
}
})
})
});
app.get("/restaurants/:id",(req,res)=>{
Restaurant.findById(req.params.id).populate("reviews").exec((err,foundRestaurant)=>{
if(err)
console.log(err);
else{
res.render("show",{restaurant:foundRestaurant});
}
})
});