- 데이터가 많아지면 한 페이지의 목록에 모든 데이터를 표현하기 어려움
- pagination은 데이터를 균일한 수로 나누어 페이지로 분리하는 것
EX) 1페이지는 1~10번까지, 2페이지는 11~20번까지 보여주기
사용
router.get(... => {
const page = Number(req.query.page || 1)
//req.query에 페이지가 없다면 기본적으로 1을 사용하겠다.
const perPage = Nu,ber(req.query.perPage || 10)
//퍼페이지 값이 없다면 10 값을 사용하겟다!
...
- limit와 skip을 이용
- limit = 검색 결과 수 제한
- skip = 검색 시 포함하지 않을 데이터 수
- total = 게시글 수 / 페이지 당 게시글 수 = 총 페이지
router.get(...=>{
...
const total = await Post.conutDocument({});
const posts = await post.find({})
.sort({createdAt : -1})//데이터를 최근순으로 정렬 하겠다!!
.skip(perPage * (page -1))//퍼페이지가 10이라고 했을때 1페이지가 됐을때 10 * 0 = 0페이지
// 0 ~ 9까지 출력
//page가 2라면 10*1 = 10 ~ 19 출력
.limit(perPage);//검색 결과 수 제한
const totalPage = Math.ceil(total / perPage);
화면에 보일때 어떻게 사용하는지!!