【发布时间】:2019-05-10 01:38:18
【问题描述】:
我正在尝试使用 ES6 语法扩展 Mongoose 模型。虽然我可以成功调用 find({}) 从 mongo 数据库中检索数据,但我无法调用 save() 来保存数据。两者都在模型内部执行。
返回的错误是Error: TypeError: this.save is not a function
const mongoose = require('mongoose')
const {Schema, Model} = mongoose
const PersonSchema = new Schema(
{
name: { type: String, required: true, maxlength: 1000 }
},
{ timestamps: { createdAt: 'created_at', updatedAt: 'update_at' } }
)
class PersonClass extends Model {
static getAll() {
return this.find({})
}
static insert(name) {
this.name = 'testName'
return this.save()
}
}
PersonSchema.loadClass(PersonClass);
let Person = mongoose.model('Persons', PersonSchema); // is this even necessary?
(async () => {
try {
let result = await Person.getAll() // Works!
console.log(result)
let result2 = await Person.insert() // FAILS
console.log(result2)
} catch (err) {
throw new Error(err)
}
})()
我正在使用: 节点 7.10 猫鼬 5.3.15
【问题讨论】:
标签: javascript node.js class mongoose ecmascript-6