2013-02-16 59 views
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 和 我在這裏讀的東西發表評論How to populate a sub-document in mongoose after creating it? 但我不知道如何編寫一個方法來創建推文或評論,併爲此設置創建者。 感謝您的提前。

回答

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