我使用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);
否则你会得到&#34;模型....没有方法&#39; someMethod&#39;&#34;&#34;
静态函数中的游戏变量是识别事件,尽管它仅在脚本中稍后定义
=&GT;奖金问题:有谁知道它为什么有效?
答案 0 :(得分:0)
您在模式上调用方法,而您需要在模型上调用它。
var Game = mongoose.model('Game', GameSchema);
Game.findRandom()...