인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Lob!님의 프로필 이미지
Lob!

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #12 토큰 생성 with jsonwebtoken

12강 에러 질문드립니다..

해결된 질문

작성

·

275

4

register 부분까지는 정상적으로 진행했고, login 부분으로 넘어왔는데 

ReferenceError : user is not defined 

    at c:...생략...\boiler-plate\index.js:51:5...

이런 오류가 뜹니다.. 강의자님의 github나 다른 질문들을 훑어봤지만 강의 내용과 코드의 다른점을 찾지 못했습니다..    도와주세요..!

https://github.com/coffeescriptSERRL/study-boiler-plate-ko/blob/master/index.js

답변 2

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

소스가 깃헙에 업데이트가  안되어 있어서 직접해보지는 못했지만 

부분에서  {}  이 괄호가 잘못쳐져있는것 같아요 

저부분 전체를


app.post('/login', (req, res) => {

// console.log('ping')
//요청된 이메일을 데이터베이스에서 있는지 찾는다.
User.findOne({ email: req.body.email }, (err, user) => {

// console.log('user', user)
if (!user) {
return res.json({
loginSuccess: false,
message: "제공된 이메일에 해당하는 유저가 없습니다."
})
}

//요청된 이메일이 데이터 베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인.
user.comparePassword(req.body.password, (err, isMatch) => {
// console.log('err',err)

// console.log('isMatch',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 })
})
})
})
})

이걸로 바꿔서 해보시겠나요 ~ ?

0

Lob!님의 프로필 이미지
Lob!
질문자

아.. 감사합니다 인자로 findOne 메서드로 user를 받아온걸 다른 지역 스코프로 빼놔서 안된거였다니..  제 생각이 너무 짧았던 것 같습니다.. ㅠㅠ 정말 감사합니다!

Lob!님의 프로필 이미지
Lob!

작성한 질문수

질문하기