私はマングースランダムプラグインを使用しています。
私のスキーマ定義では、私は呼び出します
GameSchema.plugin(random, { path: 'r' });
その後、プラグインを使用するカスタム静的メソッドがあります。
GameSchema.statics.someMethod {
[...]
GameSchema.findRandom...
そして、私はエラーが発生します
TypeError: Object #<Schema> has no method 'findRandom'
私がやろうとしていることを達成する方法はありますか、それともある種のリポジトリを実装する必要がありますか?
編集:
ベンの答えはうまくいきました。スキーマではなくモデルで findRandom を使用する必要がありました。
私の場合の精度:最初に静的関数を宣言する必要があります
GameSchema.statics.someMethod {
[...]
Game.findRandom...
次に、スキーマを登録します
var Game = mongoose.model('Game', GameSchema);
そうしないと、「Model .... has no method 'someMethod'」というエラーが発生
します。静的関数のゲーム変数は、スクリプトの後半でのみ定義されますが、イベントとして認識されます。
=>おまけの質問: なぜそれが機能するのか誰か知っていますか?