-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
질문
20.04.07 19:16 작성 조회수 108
1
모델에서 User.js 안에서 this가 언디파인드로 떠서
그냥 미들웨어 안에서 해결했는데 이렇게 해도 괜찮을까요?
const auth = (req, res, next) => {
const token = req.cookies.x_auth;
jwt.verify(token, "secretToken", (err, decoded) => {
if (err) throw err;
User.findOne({ _id: decoded, token: token }, (err, user) => {
if (err) return res.json({ success: false, err });
if (!user) return res.json({ isAuth: false, error: true });
req.token = token;
req.user = user;
next();
});
});
}
답변을 작성해보세요.
0
재신 이
2021.10.10
제 예상에는 User.js 메소드 정의하실 때 화살표함수로 표현하셔서 그 안에 this가 user를 못 받고 undefined가 떳을 수도 있을거 같아요.
0
이동욱
2020.05.11
저도 똑같이 나왔었는데
User.js 에서
const user = this;
const userInfo = this;
로해서 콜백메소드에 userInfo를 넘겨줬더니 정상적으로 작동했어요 ㅎㅎ
0
John Ahn
지식공유자2020.04.08
아 this가 왜 undefined가 나오는지 의문이네요 ...
아래에 req.token = token 위에
console.log(token)해서 토큰 잘가져오는지 확인해보시구
req.user = user 위에
console.log(user) 해서 유저 정보도 잘 가져오는지
확인해보시구 잘가져온다면 그렇게해도 문제는 없습니다 ^^
답변 3