해결됨
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
TypeError: user.comparePassword is not a function 라고 에러메시지가 뜹니다..
현재 토큰생성 with jsonwebtoken 들으면서 진행중에 있는데요.
여기서 TypeError: user.comparePassword is not a function 라고 뜨면서 postman이 작동하지 않고있습니다..
무슨이유일까요
// Login Route 생성
app.post('/login', (req, res) => {
// 요청된 이메일을 데이터베이스 안에서 있는지 찾는다
User.findOne({ email: req.body.email }, (err, user) => {
if(!user) {
return res.json({
loginSuccess: false,
message: "제공된 이메일에 해당되는 유저가 없습니다."
})
}
// 요청된 이메일이 데이터 베이스에 있다면 비밀번호가 맞는건지 확인한다
user.comparePassword(req.body.password, (err, isMatch) => {
if(!isMatch)
return res.json({ loginSuccess: false, message: "비밀번호가 틀렸습니다." })
// 비밀번호까지 맞다면 토큰을 생성한다.
user.generateToken((err, user) => {
if(err) return res.status(400).send(err);
// 쿠키에 토큰을 저장한다.
res.cookie("x_auth", user.token)
.status(200)
.json({ loginSuccess: true, userId: user._id })
})
})
})
})