为什么我总是报user.comparePassword is undefined,写法和老师一样,是我mongoose的版本不对么?
Phishing
2014-10-07
4 回答
这个跟 mongoose 的版本应该没啥关系,估计是代码问题,比对下这两段看哪里有写错没?
signin 时候的逻辑:
exports.signin = function(req, res) {
var _user = req.body.user
var name = _user.name
var password = _user.password
User.findOne({name: name}, function(err, user) {
if (err) {
console.log(err)
}
if (!user) {
return res.redirect('/signup')
}
user.comparePassword(password, function(err, isMatch) {
if (err) {
console.log(err)
}
if (isMatch) {
req.session.user = user
return res.redirect('/')
}
else {
return res.redirect('/signin')
}
})
})
}schema 里面的静态方法定义:
UserSchema.methods = {
comparePassword: function(_password, cb) {
bcrypt.compare(_password, this.password, function(err, isMatch) {
if (err) return cb(err)
cb(null, isMatch)
})
}
}查看2条回复
举报
0/150
提交
取消