[Node.js]

[Node.js] 페이지 기능 만들기

VaIice 2024. 7. 16. 17:37

 1. 서버 코드 

// server.js

app.get('/list/:page', async (request, response) => {
  let page = parseInt(request.params.page);
  let itemsPerPage = 5;

  let result_number = await db.collection('main').countDocuments();
  let page_number = Math.ceil(result_number / itemsPerPage);

  let result = await db.collection('main')
    .find()
    .skip((page - 1) * itemsPerPage)
    .limit(itemsPerPage)
    .toArray();
  response.render('main.ejs', {posts: result, page_number: page_number, current_page: page})
})

 

 countDocuments: collection의 전체 document 수 

 find: 특정 조건에 맞는 document 검색 / 조건이 없다면 모든 문서 검색 

 skip: 건너 뛸 문서의 수 

 limit: 표시할 문서의 수 

// main.ejs
 
      <% for(let i = 1; i <= page_number; i++) {%>
        <a href="/list/<%-i%>">
          <div class="form-box">
              <%- i%>
          </div>
        </a>
      <% } %>
 

2페이지 화면