• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

질문

20.04.07 19:16 작성 조회수 108

1

모델에서 User.js 안에서 this가 언디파인드로 떠서

그냥 미들웨어 안에서 해결했는데  이렇게 해도 괜찮을까요?

const auth = (reqresnext=> {
  const token = req.cookies.x_auth;
  jwt.verify(token"secretToken", (errdecoded=> {
    if (errthrow err;
    User.findOne({ _id: decoded, token: token }, (erruser=> {
      if (errreturn res.json({ success: falseerr });
      if (!userreturn res.json({ isAuth: false, error: true });
      req.token = token;
      req.user = user;
      next();
    });
  });
}

답변 3

·

답변을 작성해보세요.

0

재신 이님의 프로필

재신 이

2021.10.10

제 예상에는 User.js 메소드 정의하실 때 화살표함수로 표현하셔서 그 안에 this가 user를 못 받고 undefined가 떳을 수도 있을거 같아요. 

0

이동욱님의 프로필

이동욱

2020.05.11

저도 똑같이 나왔었는데 

User.js 에서 

const user = this;

const userInfo = this;

로해서 콜백메소드에 userInfo를 넘겨줬더니 정상적으로 작동했어요 ㅎㅎ

0

아  this가 왜 undefined가 나오는지 의문이네요 ...

아래에   req.token = token 위에 

console.log(token)해서  토큰 잘가져오는지 확인해보시구

req.user = user 위에 

console.log(user) 해서 유저 정보도 잘 가져오는지 

확인해보시구  잘가져온다면 그렇게해도 문제는 없습니다 ^^