一种使用猫鼬对象的方法

时间:2014-03-07 10:11:03

标签: node.js mongoose

通过使用查询解决并将其传递到DoSomethingWithDb:

var query = TestModel.findOne({numField: 1});
DoSomethingWithDb = function DoSomethingWithDb(dbMethod, callback, params) {
....
}

我想创建一个像这样调用的方法:

this.DoSomethingWithDb(this.someObject.findOne, conditions, this.RegisterDBCallback, additionalParams);

在DoSomethingWithDb内部我尝试执行查询,但它会引发错误。

myboj.prototype.DoSomethingWithDb = function DoSomethingWithDb(dbMethod, conditions, callback, params) {
    dbMethod(conditions, function(err, doc) {
        if (err) {

            return;
        }

        if (typeof callback === 'function') {
            callback(doc, params);
        }

    });
};

错误callstack的一部分:

  

... node_modules \猫鼬\ lib中\ model.js:949   this._applyNamedScope(查询);          ^ TypeError:对象#没有方法'_applyNamedScope'       在findOne(... \ node_modules \ mongoose \ lib \ mode   l.js:949:8)       在DoSomethingWithDb(.... server.js:2103:2)

1 个答案:

答案 0 :(得分:0)

通过使用查询解决并将其传递到DoSomethingWithDb:

var query = TestModel.findOne({numField: 1});
DoSomethingWithDb = function DoSomethingWithDb(query , callback, params) {
....
}