0

我必须创建社交网络,比如 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 和评论?我在这里读过一些东西。但我不知道如何编写一个方法来创建推文或评论并为此设置创建者。

4

1 回答 1

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();
  });
});
于 2013-02-16T20:29:43.443 回答