• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

sequelize where절에 &&는 무슨 의미죠?

20.02.14 21:33 작성 조회수 303

0

  User.findOne({
    where: { id: req.user && req.user.id || null },
    include: { model: Domain },
  })
    .then((user=> {
      res.render('login', {
        user,
        loginError: req.flash('loginError'),
        domains: user && user.domains,
      });
   })
저 밑에 도메인 &&도요...
정확한 id값을 안넘기고 불리언 값을 넘기는건
왜그러는거죠?

답변 2

·

답변을 작성해보세요.

1

불리언 값을 넘기는 게 아닙니다. && 연산자는 불리언을 반환하는 게 아니라 앞의 값이 존재하면 && 다음 값을 반환합니다. 없다면 앞의 값을 반환하고요.

예를 들어 req.user가 존재하면 req.user.id를 넣는 것이고 없으면 req.user를 반환하는데 req.user가 없는 값이므로 || 연산자를 적용해서 undefined를 넣습니다. 삼항연산자와 쓰임새가 같습니다. req.user ? req.user.id : undefined.

|| 연산자는 &&와는 반대로 앞 값이 존재하면 앞의 값을 반환하고, 없다면 다음 값을 반환합니다.

아래 도메인도 마찬가지로 user가 있으면 user.domains를 넣고 없으면 앞의 값인 user를 넣습니다. user가 없는 값(undefined, null, false같은 것)일 때는 없는 값 그대로 나오는 것입니다.

0

감사합니다!