【发布时间】:2014-11-13 22:39:48
【问题描述】:
我使用mongoose random plugin。
在我的架构定义中,我调用了
GameSchema.plugin(random, { path: 'r' });
之后我有一个使用插件的自定义静态方法:
GameSchema.statics.someMethod {
[...]
GameSchema.findRandom...
我得到了错误
TypeError: Object #<Schema> has no method 'findRandom'
有没有办法实现我想要做的事情,或者我应该实现某种存储库?
编辑:
Ben 的回答有效,我需要在模型上使用 findRandom 而不是架构。
就我而言,精确度:您需要首先声明您的静态函数
GameSchema.statics.someMethod {
[...]
Game.findRandom...
然后注册您的架构
var Game = mongoose.model('Game', GameSchema);
否则你会得到“Model .... has no method 'someMethod'”
静态函数中的游戏变量是可识别事件,尽管它仅在脚本的后面定义。
=> 额外问题:有人知道它为什么起作用吗?
【问题讨论】:
标签: node.js mongodb mongoose mongoose-plugins