我必须创建社交网络,如Twitter人发布推文,但在其中发表评论。我定义了
var Comment = new Schema();
Comment.add({
title : { type: String, index: true }
, date : Date
, body : String
, created_by: { type: Schema.Types.ObjectId, ref: 'User' }
});
var TweetSchema = new Schema ({
created_at : { type: Date, default: Date.now }
, created_by: { type: Schema.Types.ObjectId, ref: 'User' }
, title : String
, comments : [Comment]
, body : String
, picture: [Url]
})
因为我通过REST API提供移动应用程序请求 我想问一下,当我创建推文时,我可以将哪些内容发送到服务器以获取creator_info并发表评论?我看过something here。但我不知道如何编写方法来创建推文或评论,并为此设置创建者。
答案 0 :(得分:2)
你可以做到。在保存推文之前,您尝试从数据创建用户。如果失败,则传递错误。如果没有,请将created_by字段设置为用户的id。
点击此处了解更多信息:http://mongoosejs.com/docs/middleware.html
TweetSchema.pre('save', function(next) {
var user = new User(this.created_by, function(err, user) {
if (err) return next(err);
this.created_by = user._id;
next();
});
});