Pagination

Jong-uk·2023년 4월 13일
0

엘리스 온라인 학습

목록 보기
22/39
post-custom-banner

Pagination

  • 데이터가 많아지면 한 페이지의 목록에 모든 데이터를 표현하기 어려움
  • 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);

화면에 보일때 어떻게 사용하는지!!

  • paginatio을 mixin으로 선언!!!
profile
안녕하세요! 만나서 반갑습니다.
post-custom-banner

0개의 댓글