token try..catch error 및 시퀄라이즈에서의 dataValues 값 다루기

Suxxzzy.log·2022년 3월 26일
0

에러핸들링

목록 보기
28/32
module.exports = async (req, res) => {
  // TODO: urclass의 가이드를 참고하여 GET /accesstokenrequest 구현에 필요한 로직을 작성하세요.

  if (req.headers['authorization'] === undefined){
    console.log("헤더없음")
    return res.status(400).send({data: null, message : 'invalid access token'})
  }

  const token = req.headers['authorization'].split(' ')[1]
  try{
    const decoded = jwt.verify(token,process.env.ACCESS_SECRET)
    const userInfo = await Users.findOne({where: {id: decoded.id}})
    console.log(userInfo,"토큰정보")
    delete userInfo.dataValues.password 
    return res.status(200).send({data: {userInfo : userInfo.dataValues }, message : 'ok'})

  }catch(err){
    return res.status(400).send({data: null, message : 'invalid access token'})
  }
};

자꾸 빼먹는 부분
1. 시퀄라이즈 쿼리 메서드 사용 시, 비동기 처리 꼭 할 것
2. 시퀄라이즈 쿼리의 결과는 객체 안에 3개의 객체가 있는 형태인데, 그 중 진짜 결과값을 써야 함. 이를 위해 결과값.dataValues를 꼭 써야 함!
3.jwt의 verify메서드는 에러가 나면 에러를 throw 하기 때문에 try catch 로 구문을 작성하자!

profile
몫을 다하는 사람

0개의 댓글