인프런 커뮤니티 질문&답변
왜 user/0가 본인이 검색되는 거죠 ?
해결된 질문
작성
·
179
0
req.params.id가 0이면 req.user && req.user.id로 검색하는건 알겠습니다
하지만 왜 (req.user && req.user.id) 뒤에 || 0 도 붙이는거죠 ?
user가 0이면 본인이 검색되는것 같은데
왜 그렇게 되는거죠 ?
감사합니다
router.get('/:id/posts', async (req, res, next) => {
try {
const posts = await db.Post.findAll({
where: {
UserId: parseInt(req.params.id, 10) || (req.user && req.user.id) || 0,
RetweetId: null,
},
include: [{
model: db.User,
attributes: ['id', 'nickname'],
}, {
model: db.Image,
}, {
model: db.User,
through: 'Like',
as: 'Likers',
attributes: ['id'],
}],
});
res.json(posts);
} catch (e) {
console.error(e);
next(e);
}
});
답변 4
2
제로초(조현영)
지식공유자
req.params.id가 없으면 req.user && req.user.id가 검색되고요.
만약에 req.user.id마저도 없으면 UserId: undefined가 됩니다.
시퀄라이즈에서는 where 절에 undefined가 들어가면 에러가 발생하기 때문에
에러를 막기 위해 0을 넣었습니다. 0이 들어가는 경우는 아무것도 검색되지 않습니다.
0
0
0





