mongoose中声明的methods报not a function
model.js
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
username: ...
});
userSchema.statics = {
fetch: ...
}
userSchema.methods = {
comparePassword: function (_password, cb) {
...
}
}
var user = mongoose.model('user',userSchema);
module.exports = user;
controller.js
var user = require('../models/user');
exports.signin = function (req, res) {
user.findOne(...{
user.comparePassword(password,function (err, isMatch) {
...
})
});
}
请问这里报TypeError:user.comparePassword is not a function
是什么原因?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
申明一下我不使用mongoose驱动,所以以下纯属推测。
所以
user
是一个model
。这个model
有一个静态方法叫comparePassword
吗?显然没有,所以你用user.comparePassword
会失败。照你的写法,你应该是想用findOne
找到的对象的comparePassword
方法,这部分被你...
掉了,好好检查一下代码。