为什么我总是报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
提交
取消