TIL 23_07_14 (금)

jegw·2023년 7월 16일
0

TIL

목록 보기
44/77
post-custom-banner

오늘 한 일

lv5 수정 및 제출


  • lv4 과제 피드백을 확인하고 lv5에 적용했다.
    • comments와 likes API의 URL을 /posts로 시작하게 했다. 댓글과 좋아요는 게시글에 종속적이기 때문이다. 게시글이 있어야 댓글과 좋아요가 있을 수 있기 때문.
    • 게시글과 1:N관계를 갖고 있는 댓글을 join을 하는 방법으로 한번의 쿼리로 조회하게 한다.
findAllPosts = async () => {
    const posts = await Posts.findAll({
      attributes: [
        'postId',
        'UserId',
        'nickname',
        'title',
        'createdAt',
        'updatedAt',
        // [sequelize.fn('COUNT', sequelize.col('Likes.UserId')), 'likes'],
        [sequelize.literal('(SELECT COUNT(*) FROM Likes WHERE Likes.postId = Posts.postId)'), 'likes'],
      ],
      order: [['createdAt', 'DESC']],
    });

    return posts;
  };

주석처리한 부분으로도 같은 조회가 가능하다.

post-custom-banner

0개의 댓글