userSchema.methods.comparePassword= function(plainPassword, cb){//cb는 (err,isMatch)이다.
//plainPassword 유저가 입력한 password
//유저가 입력한password를 암호화 하여 암호화되어있는 비밀번호와 비교한다.
bcrypt.compare(plainPassword, this.password, function(err, isMatch){//bcrypt의 compare함수를 이용하여 user가 입력한 password와 비교한 후 결과를 isMatch(boolean)에 담아준다.
if(err) return cb(err), //err은 err정보를 담고있다
cb(null,isMatch)//isMatch == 'true'or false ?? <==요 부분이 궁금합니다.
})
}
따라서 index.js에서 user.comparePassword
if문 부분의 조건을 (isMatch === false)로 비교해서 return해야 하는것이 맞지 않는것인지 궁금합니다.
if(!isMatch)//여기 이상함 isMatch값은 boolean이와야하는데 왜 널이 아닌지를 비교하는지 이상
return res.json({loginSuccess: false, message:"비밀번호가 틀렸습니다."})