• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

시퀄라이즈 쿼리문에 req.user값 사용법

21.07.27 12:06 작성 조회수 241

1

시퀄라이즈 쿼리문에 

where: {

email: req.user},

이렇게 넣고 싶은데 어떻게 사용해야하나요?

로그인 후에 req.user에 이메일이 저장되고, 이 사용자의 post를 뽑아내고 싶은 상황입니다.

답변 2

·

답변을 작성해보세요.

0

삭제된 글입니다

User에 왜 User를 include하시나요?

0

req.user.email 하면 됩니다.

router.get("/mypage", isLoggedIn, async (req, res, next) => {
  //console.log(req.user.email);
  try {
    const myinfo = await User.findOne({
      include: {
        model: User,
        attributes: ["email", "introduce"],
        where: {
          email: req.user.email,
        },
      },
    });
    console.log(myinfo);
    res.status(200).json({
      email: myinfo,
    });
  } catch (err) {
    res.status(400).json({
      error: err,
    });
  }
});

제 코드인데요, 

{"error":{"name":"SequelizeEagerLoadingError"}}

이런에러가 나옵니다. console.log(myinfo);는 터미널에 찍히지도 않는상황인데 뭐가 문제일까요..?

(introduce는 시퀄라이즈모델에 임의로 넣은 값이고, db에도 넣어져 있는 컬럼 값입니다!)

User에 왜 User를 include하시나요?

와!! 해결됬습니다!! 감사합니다..ㅎ

시쿼라이즈 문법이 아직 익숙치 않아서 검색결과를 생각없이 그대로 따라했습니다.

감사합니다!

현영님 추가로 궁금한게 있는데요, 

const userEmail = req.user.email;  을 하고 

where: userEmail 로 선언하면 안되는건가요?

그래도 됩니다.

네 감사합니다!