【发布时间】: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
-
向下滚动...回答你自己的问题