Node.js 这不是构造函数
我进入了express和mongoose,并且做了一个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
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);},这(数据)是什么样的新对象代码>应该创建什么?这个应该是哪个构造函数?只有当我们知道这一点时,我们才能帮助你。此外,在方法上使用粗箭头通常是错误的选择,因为这是一个词法值,而不是所需的对象值。