【问题标题】:one method for using mongoose objects一种使用猫鼬对象的方法
【发布时间】:2014-04-10 10:17:36
【问题描述】:

通过使用查询并将其传递给 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);
        }

    });
};

部分错误调用栈:

....node_modules\mongoose\lib\model.js:949 this._applyNamedScope(query); ^ TypeError: Object # has no method '_applyNamedScope' 在 findOne (...\node_modules\mongoose\lib\mode l.js:949:8) 在 DoSomethingWithDb (....server.js:2103:2)

【问题讨论】:

  • 您通常会将其添加为您的猫鼬模型上的静态/实例方法。请问您可以发布您的型号代码吗?
  • 这里是完整的测试代码pastebin.com/0Qz52KzJ我尝试在这里粘贴代码,但是代码长度太长了。
  • 你不应该把你的问题编辑成“已解决”,你需要回答它。
  • 我找不到这个绿色按钮 :( 在哪里?snag.gy/9juiI.jpg
  • 向下滚动...回答你自己的问题

标签: node.js mongoose


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-01-05
    • 2015-09-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 2017-04-27
    相关资源
    最近更新 更多