Mongoose - 向回调中返回的对象添加方法
Posted
技术标签:
【中文标题】Mongoose - 向回调中返回的对象添加方法【英文标题】:Mongoose - add method to object that is returned in the callback 【发布时间】:2015-05-27 16:35:27 【问题描述】:有没有办法向回调中返回的对象添加函数?
User.find('age':'20', function(err, users)
users.function();
);
似乎statics
仅适用于模型。示意图:
User.static();
和methods
仅适用于实例
(new User()).method();
它们似乎都不适用于用户,我认为这只是一个普通的 js 对象变量。我错过了什么吗?
【问题讨论】:
users
是一个带有find
的数组,而不是一个文档。
【参考方案1】:
Schema.method
描述,来自文档:
将实例方法添加到由从该模式编译的模型构造的文档中。
所以,如果你这样做:
var userSchema = new Schema(
username: String,
age: Number
);
userSchema.method('showAge', function ()
return this.age;
);
,并在从如下查询返回的文档中调用您的方法:
User.findOne('age':'20', function(err, user)
console.log(user.showAge());
);
它应该工作。也许您遇到问题是因为您在array
中调用了您的方法users.function()
。请记住:find
方法返回一个文档数组。
【讨论】:
以上是关于Mongoose - 向回调中返回的对象添加方法的主要内容,如果未能解决你的问题,请参考以下文章
无法向 Mongoose 查询返回的对象添加新属性 [重复]
从 Mongoose Find() 查询向对象数组添加属性 [重复]
从 Mongoose Find() 查询向对象数组添加属性 [重复]
Mongoose:我如何避免回调地狱,同时允许对不返回承诺的 mongoose 方法进行存根?