Node.js 这不是构造函数

Node.js 这不是构造函数,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我进入了express和mongoose,并且做了一个mongoose statics const mongoose = require('mongoose'); const trainerSchema = require('./trainer.model'); trainerSchema.statics = { create : (data, cb) => { const trainer = new this(data); trainer.sav

我进入了express和mongoose,并且做了一个
mongoose statics

const mongoose = require('mongoose');
const trainerSchema = require('./trainer.model');

trainerSchema.statics = {
    create : (data, cb) => {
        const trainer = new this(data);
        trainer.save(cb);
    },

    get: (query, cb) => {
        this.find(query, cb);
    },

    getByName: (query, cb) => {
        this.find(query, cb);
    },

    update: (query, updateData, cb) => {
        this.findOneAndUpdate(query,
            {$set: updateData},{new: true}, cb);
    },

    delete: (query, cb) =>{
        this.findOneAndDelete(query,cb);
    }
}

const trainerModel = mongoose.model('Trainer', 
trainerSchema);

module.exports = trainerModel;
但是每当我尝试创建一个
trainer
modek时,我都会遇到这样的错误:
TypeError:这不是一个构造函数


我不知道为什么会发生这种情况,因为我认为这是指模式模型。

因为
是*instance`,而不是创建实例的构造函数。您是否尝试使用普通函数而不是箭头函数,如-get:function(query,cb){this.find(query,cb);},这(数据)是什么样的新对象应该创建什么?这个
应该是哪个构造函数?只有当我们知道这一点时,我们才能帮助你。此外,在方法上使用粗箭头通常是错误的选择,因为
这是一个词法值,而不是所需的对象值。