• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

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

19.09.22 17:23 작성 조회수 82

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

libertines11님의 프로필

libertines11

2020.01.18

저도궁금했었는데 해결됬네요 감사합니다

0

아하 감사합니다 !

0

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

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

작동하게 하는건가요 ?