mongoose的model中调用静态方法的时候一直报TypeError: this.find is not a function,改成findeOne也报。
翻来覆去想了两个小时,原来是箭头函数的问题 。
articleSchema.statics.searchByAid = (aid, callback) => {
this.find({ articleId: aid }, (_err, result) => {
if (_err) {
throw _err
}
callback(result)
})
}
由于箭头函数会覆盖this,所以mongoose的静态方法中不能用()=>{},应该使用匿名函数。改为如下就ok啦。
articleSchema.statics.searchByAid = function(aid, callback) {
this.find({ articleId: aid }, (_err, result) => {
if (_err) {
throw _err
}
callback(result)
})
}
突然想起学课程的时候老师提到了这个知识点的,当时视频加速太快也没太在意,结果现在就多花了两个小时。欠的时间,都是要还的。