Mongoose模式方法是“不是一个函数”

我的模型看起来像这样,但是当我尝试使用verifyPassword ,它说TypeError: user.verifyPassword is not a function

 const User = new mongoose.Schema({ name: { type: String, required: true }, password: { type: String, required: true }, avatar: String, token: String, role: String, permissions: Array, email: { type: String, unique: true, required: true }, joined: { type: Number, default: ( new Date() * 1 ) } }) User.methods.verifyPassword = function (password) { return bcrypt.compare(password, this.password) } 

我这样使用它。

 yield User.find({ email: this.request.body.email }).exec() .then( user => { if ( user.verifyPassword(self.request.body.password) ) { self.status = 200 self.body = { token: user.token } } else { self.status = 500 self.body = "Problem signing in." } }, error => { self.status = 500 self.body = "Problem signing in." }) 

Mongo的“find”返回结果的可迭代游标(可能没有)。 如果您只希望得到一个结果,请尝试使用“findOne”。 这将返回一个文件。