Mongoose findOne回调无法正常工作

时间:2014-11-26 02:19:27

标签: javascript node.js mongoose

Mongoose findOne函数调用什么也没做,我又遇到了麻烦。回调永远不会被退回......

schema.js文件:

var schemaSizeGroup = new Schema({
     sizeGroupId        :   {type: Number, required: true, index: true, index: { unique: true }}
    ,sizeGroupName      :   {type: String, required: true, trim: true, index: { unique: true }}
    ,sizeGroupValues    :   {type: String, required: true, trim: true }
    ,active             :   {type: Boolean, default: true }
}, { collection: 'sizegroup' }).index({sizeGroupId : 1});


module.exports ={
    SizeGroup       : mongoose.connection.model('SizeGroup', schemaSizeGroup),
}

index.js文件:

findDocumentById : function(sGroupId, callback){
        winston.info("  Trying to select!");
        model.SizeGroup.findOne( {sizeGroupId : sGroupId} ,function(err, sGroup) {

            winston.info("  Select done:");
            winston.info(JSON.stringify(sGroup,null,2));

            if(!err) {
                if(!sGroup) {
                    callback(new Error("  No SizeObject Found for Id:" + sizeGroupId));
                } else { callback(null, sGroup); }
             }
             else {
                callback(err);
             }
        });
    }
}

使用mongo客户端选择数据很好地返回正确的数据:

db.sizegroup.find({sizeGroupId : 6});

使用mongoose.set('debug',true)时输出如下:

Mongoose: sizegroup.findOne({ sizeGroupId: 6 }) { fields: undefined } 

我有活跃的mongoose连接,因为之前的所有插入语句都已成功。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

这是程序流程中的回调问题。明确纯粹愚蠢的情况....