두가지 질문이있습니다.
308
작성한 질문수 16
게시글이 20개 배수로존재할때(ex 총 게시글수가 60개일때) 3페이지에서 다음페이지 정보가 url에 같이 올것같은데 이 부분은 어떻게 보완이 가능할까요?
if (dto.where__id_more_than) {
where.id = MoreThan(dto.where__id_more_than);
} else if (dto.where__id_less_than) {
where.id = LessThan(dto.where__id_less_than);
}
const posts = await this.postsRepository.find({
where,
order: {
createdAt: dto.order__createdAt,
},
take: dto.take,
});위 코드에서 where의 조건을 dtd의 order__createdAt 이 'ASC'인지 'DESC'인지를 체크하는것도 괜찮으까요?
답변 1
1
안녕하세요!
질문을 잘 이해 못하겠습니다.
혹시 60개 마다 다음 페이지 URL이 생성 가능한데 20개씩 데이터를 반환하는 경우를 말씀하시는걸까요?
이건 조금 말이 안되는 경우입니다.
20개씩 데이터를 응답하는데 그 다음 페이지를 20개마다 생성 불가능하다는 것도 말이 안되고 혹여나 그렇다 해도 60개마다 URL 생성이 가능한데 20개씩 데이터를 반환 해준다는 것도 말이 안됩니다.
60개씩 반환하거나 20개마다 그냥 URL을 생성하시면 될 것 같습니다.
혹시 다른 질문이었다면 다시 질문 부탁드립니다!
감사합니다!
0
죄송합니다. ㅋㅋㅋ 전날부터 밤새고 난 상태에서 공부하다 보니 두서도 없고 정리도 안된 질문을 드렸습니다.
첫 번째 질문의 경우
현재 데이터베이스에 총 140개의 게시글이 들어가 있다고 가정을 한 상태에서

20개씩(take:20) 잘라서 페이지 네이션을 할 경우
7페이지가 마지막 페이지입니다. (20 * 7 = 140)
근데 cursor와 next의 값을 넣어줄 때 현재 가져온 게시글의 길이가 20(take의 값)일 때는 다음 페이지 정보 값을 위해 cursor의 after 값을 마지막 게시글 아이디로, next 값을 다음 URL로 만들어 준다고 강의를 보고 공부했습니다.

이럴경우 마지막 7페이지에 20개의 게시글이 넘어옴으로써 실제로는 다음 페이지의 게시글이 존재하지 않지만, 다음 페이지에 대한 정보를 만들어주어 응답하기 때문에 한번더 API 콜을 하게 되는 경우가 있는데, 이럴 경우에 선생님은 어떤 고민을 하셨는지 궁금하여 질문을 드렸습니다.
(마지막 7페이지의 데이터를 요청했을때의 응답값)
(위 URL을 토대로 요청했을때 응답값)
두번째 질문의 경우 'ASC', 'DESC'... 이건 제가 무슨질문을 한건지도 기억이 혼미하네요... ㅋ큐ㅠㅠ(잠은 중요한것같습니다!) 죄송합니다. 이 부분은 페이지네이션 반복학습을 통하여 제대로 공부하겠습니다.
아직 초보라 많이 부족하지만 선생님 강의를 통해서 많은것을 공부하고있습니다.
항상 감사드립니다 🙂
1
질문 이해 했습니다!
일단 두가지 방법이 있습니다.
첫번째 방법은 그냥 지금 구현 돼있는대로 마지막에 한번 더 요청을 하는겁니다.
만약에 이게 싫다면 서버에서 데이터베이스 요청을 할때 실제 응답해야하는 데이터 갯수 + 1을 가져오는겁니다.
예를들어 20개만 반환할 예정이라면 21개를 가져오는거죠.
만약에 데이터베이스에 21개의 데이터가 존재하지 않는다면 다음 페이지는 없다는걸 미리 알 수 있습니다.
저는 개인적으로 첫번째 방법을 선호합니다.
감사합니다!
cascade 질문
0
40
1
@types/bcrypt 설치과정이 누락된것같습니다.
0
48
1
process.env port key 에러
0
46
1
추상화
0
50
1
[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상
0
100
2
where 키워드가 들어가는 메서드와 아닌 메서드
0
57
1
BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?
0
72
1
app.controller app.service 는 지워도되나요?
0
70
1
@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이
0
79
1
포트 3000에서 listen하는 곳까지 넘어가지 않습니다.
0
67
1
PickType 사용 시 `as const`를 꼭 사용해야 하나요?
0
102
2
socket connect 오류
0
97
2
강의를 들으면서 궁금한 점
0
97
2
DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?
0
60
2
커리큘럼 질문
0
100
2
put 요청은 언제
0
90
3
typeorm VS prisma
0
351
2
142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.
0
77
2
User 데코레이터 버그 수정 전달드립니다.
0
67
1
git 주소 부탁드립니다.
0
113
2
nest g resource 명령어 에러
0
99
2
로그인 엔드포인트 관련 질문
0
85
2
yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우
0
148
3
"흔히 사용되는 메서드" 강의 관련 질문입니다~
0
95
2





