当我提交表单时,我不断收到此消息(errorCastError:投射到 ObjectId的路径“ comments”中的值“ comment”失败了),我希望您能 我的问题对了
action="/campground/<%= camp._id %>/comments/" method="POST">
app.get("/campground/:id/comments/new", function(req, res){
Campground.findById(req.params.id, function(err, camp){
if(err){
console.log(err);
} else {
res.render("comments/new", {camp: camp});
}
});
});
app.post("/campground/:id/comments", function(req, res){
Campground.findById(req.params.id, function(err, camp){
if(err){
console.log(err);
res.redirect("/");
} else {
Comment.create(req.body.comment, function(err, comment){
if(err){
console.log(err);
} else {
camp.comments.push("comment");
camp.save();
res.redirect("/campground/" + req.params.id);
}
});
}
});
});
app.listen(process.env.PORT, process.env.IP);
答案 0 :(得分:1)
您正在推送"comment"
的字符串,而该字符串是必需的对象或仅ID,以下示例可能会对您有所帮助
camp.comments.push(comment);
或
camp.comments.push(comment._id);
而不是camp.comments.push("comment");