只返回集合中的一个项目mongoose

时间:2013-02-23 15:31:07

标签: node.js mongoose

我有方法getFollowing获取以下用户的列表

UserSchema.statics.getFollowing = function(data, callback) {
    console.log("data: ", data);
    this.findOne({
        name : data.name
    }, function(err, docs) {
        if (err)
            callback("error " + err)
        else if (docs) {
            console.log("XXXX", docs.following_count)
            mongoose.model('User').findOne({
                                     _id : docs._id
                                }).populate('following', 'name screen_name avatar _id').exec(function(err, res) {
                                    if (err)
                                        callback(err);
                                    // console.log('The following is %s', res)                          

                                });         

            callback(docs.following);
        }
        else callback('{"error": "user-not-found"}');
    });
}

我想回调发送到客户端docs.following列表 我不知道什么时候我在console.log(docs.following)打印但是当我回调时(docs.following)它返回错误。

我像那样定义UserSchema

var UserSchema = new Schema({
created_at : { type: Date, default: Date.now }
, name : String
,   hashedPass : String
,   salt: String
,   email : Email
,   avatar : {type: String, default: "images/default_profile.png" }
,   statuses_count : Number
,   screen_name : String
,   location : String
,   about : String
,   followers: [{ type: ObjectId, ref: 'User' }]
,   following: [{ type: ObjectId, ref: 'User' }]
,   followers_count : Number
,   following_count : Number
});

1 个答案:

答案 0 :(得分:0)

我认为您希望将callback(docs.following);调用转移到回调中(您当前拥有// console.log('The following is %s', res))。此外,按照惯例,回调的第一个参数是错误,第二个参数是数据,因此将callback(docs.following);更改为callback(null, docs.following);