-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
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값을 안넘기고 불리언 값을 넘기는건
왜그러는거죠?
답변을 작성해보세요.
1
조현영
지식공유자2020.02.14
불리언 값을 넘기는 게 아닙니다. && 연산자는 불리언을 반환하는 게 아니라 앞의 값이 존재하면 && 다음 값을 반환합니다. 없다면 앞의 값을 반환하고요.
예를 들어 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
답변 2