в моей модели, я пытаюсь сделать статический метод getUserByToken. Однако, если я делаю это, как в документации, я получаюMongoose - this.find() не существует
this.find is not a function
Мой код выглядит следующим образом:
'use strict';
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const schema = new Schema({
mail: {
type: String,
required: true,
validate: {
validator: (mail) => {
return /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i.test(mail);
}
}
},
birthDate: {
type: Date,
required: true,
max: Date.now,
min: new Date('1896-06-30')
},
password: {
type: String,
required: true
},
...
});
schema.statics.getUserByToken = (token, cb) => {
return this.find({ examplefield: token }, cb);
};
module.exports.Schema = schema;
Я предполагаю, что это простая ошибка, однако, я не могу скомпилировать и добавьте статическую функцию в схему/модель, поскольку это выполняется через функцию init при запуске, которая компилирует все модели.
Кто-нибудь может мне помочь?