nodeJS
[nestJS]페이지네이션 기능 구현하기
변기원
2023. 1. 19. 18:25
쿼리스트링 받아서 페이지네이션 처리하기
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클래스로 만든 인스턴스 반환.
인스턴스가 반환되어 프런트엔드에서 무한스크롤, 페이지네이션 데이터로 활용할 수 있음.