如何为这个Mongoose模型设置创建者?

时间:2013-02-16 14:21:14

标签: node.js mongoose

我必须创建社交网络,如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。但我不知道如何编写方法来创建推文或评论,并为此设置创建者。

1 个答案:

答案 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();
  });
});