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

Harry님의 프로필 이미지

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

팔로우 / 언팔로우

복습하다가 또 질문이 생겨서 올립니다..

해결된 질문

작성

·

129

0

질문을 자주해서 죄송합니다😥

복습하면서 다시보니 이전강까지는 res.를 한번만 보내기 위해서 return이나 if~else문으로 하나의 router당 하나만 가도록 했는데 이번 강에서는 존재하지 않는 사용자를 체크하고 403을 보낼 때 리턴을 쓰지않았고, 그 다음 res까지 가면서 에러가 날 수도 있을 것 같은데... 혹시 return을 쓰지 않은 이유가 따로 있나요?

router.patch('/:userId/follow', isLoggedIn, async (req, res, next) => { // PATCH /user/1/follow
  try {
    const user = await User.findOne({ where: { id: req.params.userId }});
    if (!user) {
      res.status(403).send('존재하지 않는 사용자입니다.')
    }
    await user.addFollowers(req.user.id);
    res.status(200).json({ UserId: parseInt(req.params.userId, 10) });
  } catch (error) {
    console.error(error);
    next(error);
  }
});

router.delete('/:userId/follow', isLoggedIn, async (req, res, next) => { // DELETE /user/1/follow
  try {
    const user = await User.findOne({ where: { id: req.params.userId }});
    if (!user) {
      res.status(403).send('존재하지 않는 사용자입니다.')
    }
    await user.removeFollowers(req.user.id);
    res.status(200).json({ UserId: parseInt(req.params.userId, 10) });
  } catch (error) {
    console.error(error);
    next(error);
  }
});

router.get('/followers', isLoggedIn, async (req, res, next) => { // GET /user/followers
  try {
    const user = await User.findOne({ where: { id: req.user.id }});
    if (!user) {
      res.status(403).send('존재하지 않는 사용자입니다.')
    }
    const followers = await user.getFollowers();
    res.status(200).json(followers);
  } catch (error) {
    console.error(error);
    next(error);
  }
});

router.get('/followings', isLoggedIn, async (req, res, next) => { // GET /user/followings
  try {
    const user = await User.findOne({ where: { id: req.user.id }});
    if (!user) {
      res.status(403).send('존재하지 않는 사용자입니다.')
    }
    const followings = await user.getFollowings();
    res.status(200).json(followings);
  } catch (error) {
    console.error(error);
    next(error);
  }
});

router.delete('/follower/:userId', isLoggedIn, async (req, res, next) => { // DELETE /user/follower/1
  try {
    const user = await User.findOne({ where: { id: req.params.userId }});
    if (!user) {
      res.status(403).send('존재하지 않는 사용자입니다.')
    }
    await user.removeFollowings(req.user.id);
    res.status(200).json({ UserId: parseInt(req.params.userId, 10) });
  } catch (error) {
    console.error(error);
    next(error);
  }
});

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아, return 써야 합니다. 빠뜨린 것 같네요.

0

Harry님의 프로필 이미지
Harry
질문자

감사합니다

Harry님의 프로필 이미지

작성한 질문수

질문하기