티스토리 뷰
쿼리스트링 받아서 페이지네이션 처리하기
export class Page<T> {
pageSize: number;
totalCount: number;
totalPage: number;
items: T[];
constructor(totalCount: number, pageSize: number, items: T[]) {
this.pageSize = pageSize;
this.totalCount = totalCount;
this.totalPage = Math.ceil(totalCount / pageSize);
this.items = items;
}
}
유저에게 res로 보낼 Page 클래스
db는 mongoDB, mongoose사용함.
.count() 로 전체 개수 가져옴
프런트에서 처리하겠지만, 존재하는 페이지 넘는 요청을 하면 에러처리
.skip()은 위에서 몇 개 skip 할지
예를들어 .skip(8) 하면 sort 된 데이터에서 위에서 8개는 건너뜀
limit은 시작점부터 총 몇 개 가져올지
예를들어 .limit(10)하면 시작점부터 그다음 10개의 데이터만 가져옴
이것을 Page클래스로 만든 인스턴스 반환.
인스턴스가 반환되어 프런트엔드에서 무한스크롤, 페이지네이션 데이터로 활용할 수 있음.
'nodeJS' 카테고리의 다른 글
nestJS 프로젝트 aws ec2에 직접 배포하기 (0) | 2023.02.25 |
---|---|
[nodeJS]친구를 위한 주가지수 엑셀 자동 메일 보내기 (0) | 2023.02.19 |
[nestJS]배열의 비동기처리 병렬적으로 실행하기 (0) | 2023.01.08 |
[nestJS]class-validator 특수문자 포함여부 유효성검사 (0) | 2023.01.05 |
[nestJS] middleware 로 logger만들기 (0) | 2022.12.26 |