[보기모드 변경 구현] 좋아요 보기 구현에서 문제 발견
user7@user7.com이라는 계정을 만들어서,
총 3개의 게시물에 좋아요를 클릭하였습니다.
아래 스크린샷을 보면 알 수 있듯이,
user1이 작성한 게시물 2개에 좋아요를 클릭했고
나머지 1개는 user7이 작성한 게시물에 좋아요를 클릭했습니다.

그러면 좋아요 보기를 클릭하면, 3개의 게시물만 화면에 나와야하고 user1이 작성한 게시물 2개 user7이 작성한 게시물이 1개 나와야 합니다.
그러나 아래 스크린샷을 보면, 좋아요를 클릭한 게시물의 작성자가 모두 user7인 것을 볼 수 있습니다.

확인을 해보니 백엔드 API(GET /likes)에서 날리는 쿼리에 문제가 있었습니다.
likeArticles = await db.like.findMany({
where: {
userId: userId,
},
include: {
article: {
select: {
id: true,
content: true,
commentCount: true,
likeCount: true,
createdAt: true,
},
},
user: {
select: {
id: true,
name: true,
email: true,
},
},
},
orderBy: {
id: "desc",
},
skip: skip,
take: pageSize,
});위에서 user를 조인하여 정보를 가져오는데
해당 user는 article 작성자가 아니라 좋아요를 클릭한 사용자의 정보입니다.
그러므로 아래와 같이 article의 작성자 정보를 가져오도록 aritcle 내부에 user를 추가해줘야 합니다.
likeArticles = await db.like.findMany({
where: {
userId: userId,
},
include: {
article: {
select: {
id: true,
content: true,
commentCount: true,
likeCount: true,
createdAt: true,
user: true,
},
},
},
orderBy: {
id: "desc",
},
skip: skip,
take: pageSize,
});
그리고 가져온 정보를 평탄화하는 로직에서 userId, userName, userEmail 부분을 수정해줘야 합니다.
flattenArticles = likeArticles.map((article) => {
let newArticle = {
id: article.article.id,
content: article.article.content,
commentCount: article.article.commentCount,
likeCount: article.article.likeCount,
createdAt: article.article.createdAt,
userId: article.article.user.id,
userName: article.article.user.name,
userEmail: article.article.user.email,
likeMe: true,
};
return newArticle;
});
그럼 다음과 같이 정상적인 결과를 가져올 수 있습니다.

Answer 1
수업자료 링크 접속했는데 404에러 뜹니다 ㅠ
1
45
1
11장 미션에 이메일 남기는걸 누락했어요.
0
39
1
소스코드즘 부탁드립니다.
0
45
1
@RestControllerAdvice를 사용하지 않은 이유?
0
42
1
6장 ORM 에 관하여 질문
0
52
1
선생님 공유해주신 핸드북에 링크가 몇개 잘못되었어요
0
50
2
마감 인 경우.
0
74
1
5장부터는 미션 상세 내용이 없는데 어떻게 작성해야되나요?
0
68
1
환경변수 기반 업비트 API 키 가져오기에서 none이 나옵니다ㅠㅠ
0
56
2
3,4장 이후 미션 제출 질문
0
79
2
윈도우에서 Node js를 설치하고 싶어요
0
45
0
가상 환경과 차이 도커 질문
0
44
1
유튜브 시연 영상 추가 기능 강의 업로드 계획
0
56
3
프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문
0
103
2
[npm start 오류나는 분들을 위하여]노드 최신버전 사용하시면 오류가 발생합니다.
0
428
1
첫 메인 화면 $isLogin 인증 부분 궁금한점이 있습니다.
0
580
2
[앱 완성도 높이기3 - URL을 통한 보기모드 변경] 로그인 성공 후 라우팅 문제
0
336
1
[앱 완성도 높이기2 - 날짜보기] 타임존 관련 설정 문제
0
1587
1
[보기모드 변경 구현] 코멘트 리스트 조회 후 문제
0
485
2
[인증 구현 - 컴포넌트] error 처리 관련 질문
0
422
1
[인증 구현 - store] setAuth 메소드 구현
0
382
1
[스토어 배치] 강의 내용 중 수정이 필요한 부분
0
371
1
[라우터 설정] 강의 내용 중 수정이 필요한 부분
0
599
1
아래와 같은 에러가 발생합니다. ㅜㅜ
0
1280
2

