인프런 커뮤니티 질문&답변

얼음없는아아님의 프로필 이미지
얼음없는아아

작성한 질문수

React로 NodeBird SNS 만들기

7-4. SSR에서 내 정보 처리하기

왜 user/0가 본인이 검색되는 거죠 ?

해결된 질문

작성

·

139

0

req.params.id가 0이면 req.user && req.user.id로 검색하는건 알겠습니다

하지만 왜 (req.user && req.user.id) 뒤에 || 0 도 붙이는거죠 ?

user가 0이면 본인이 검색되는것 같은데

왜 그렇게 되는거죠 ?

감사합니다

router.get('/:id/posts'async (reqresnext=> {
  try {
    const posts = await db.Post.findAll({
      where: {
        UserId: parseInt(req.params.id10) || (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

혹시 user/0으로 me가 null이 되는걸 방지하게 해서

Profile.getInitialProps에서 dispatch들을 정상적으로

작동하게 하는건가요 ?

얼음없는아아님의 프로필 이미지
얼음없는아아

작성한 질문수

질문하기