Javascript Node js-Push()函数无法与引用和mongodb一起正常工作
我正在使用ObjectReferences并将注释数据推送到数据库中,但即使数据正在保存,它也不起作用,只添加了“id”,而没有添加用户和注释 使用推送方法的主文件Javascript Node js-Push()函数无法与引用和mongodb一起正常工作,javascript,node.js,push,Javascript,Node.js,Push,我正在使用ObjectReferences并将注释数据推送到数据库中,但即使数据正在保存,它也不起作用,只添加了“id”,而没有添加用户和注释 使用推送方法的主文件 var Comment = require('./models/comments'), Camp = require('./models/user'); app.post('/camp/:id/comment', (req,res)=>{ Camp.findById(req.params.id, (err, i
var Comment = require('./models/comments'),
Camp = require('./models/user');
app.post('/camp/:id/comment', (req,res)=>{
Camp.findById(req.params.id, (err, idf)=>{
if(err){
console.log(err);
}else{
Comment.create(req.body.comment, (err, commentz)=>{
if(err){
console.log(err);
}else{
console.log(commentz + idf);
idf.comments.push(commentz)
idf.save();
res.redirect('/camp/'+ idf._id)
}
})
}
})
})
ObjectReferences user.js
var mongoose = require('mongoose');
var schema = mongoose.Schema;
var blogSchema = new schema({
name : String,
email : String,
descr : String, // TEMPORERY
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
],
comments: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Comment'
}
]
});
var Camp = mongoose.model("Camp", blogSchema);
module.exports= Camp;
var mongoose = require('mongoose');
var schema = mongoose.Schema;
var cSchema = new schema({
user : String,
comment : String,
})
var Comment = mongoose.model("Comment", cSchema);
module.exports =Comment;
CommentSchema comments.js
var mongoose = require('mongoose');
var schema = mongoose.Schema;
var blogSchema = new schema({
name : String,
email : String,
descr : String, // TEMPORERY
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
],
comments: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Comment'
}
]
});
var Camp = mongoose.model("Camp", blogSchema);
module.exports= Camp;
var mongoose = require('mongoose');
var schema = mongoose.Schema;
var cSchema = new schema({
user : String,
comment : String,
})
var Comment = mongoose.model("Comment", cSchema);
module.exports =Comment;
主表单
<form action="/camp/<%=camp._id%>/comment" method="post" class="form-group">
<div class="form-group">
<input class="form-control" type="text" name="comment[user]" value="" placeholder="Name">
</div>
<div class="form-group">
<textarea class="form-control" style="height:100px" type="text" name="comment[comment]" value="" placeholder="Your Comment"></textarea>
</div>
<div class="form-group">
<button class="btn btn-primary btn-large btn-block" type="submit" name="submit"> SUBMIT</button>
</div>
</form>
提交
唯一添加到用户数据库中的ID,而不是所有注释,在注释中,收集数据添加得非常完美我认为与其使用
commentz
不如使用commentz.\u ID
并对进行回调。save
。它应该会起作用
console.log(commentz + idf);
idf.comments.push(commentz._id)
idf.save(function(err){
if(err){
// handle error
}
res.redirect('/camp/'+ idf._id)
});
是的,现在无论何时检索它,都必须像这样填充它
Camp.findById({}).populate('comments').exec(函数(err,camps){//它将获取整个数据})
永远不要存储同一数据两次。总是储存参考资料谢谢,兄弟,很好用。。。我使用我的课程“web开发者训练营”中的代码,他们使用相同的代码,对他们有效,但对我无效。。如果它不工作,那么它如何为他们工作???嗨,我将不得不检查那里的代码不能说他们做了什么。