jarim4020
10
2019-06-09 16:04:38 작성 2019-06-09 16:45:41 수정됨
1
197

노드 페이징



      conn.query(sql, [ (page - 1 )* 10 ], (err, result)=>{
if(err) {
res.render('error', {
head:"에러 발생",
msg:`글을 불러오는 중 오류가 발생했습니다.`});
return;
}
let list = result;
conn.query("SELECT count(*) AS cnt FROM nodeBoards", [], (err, result)=>{
let p = {};
p.totalCnt = result[0].cnt; //전체 글의 갯수
p.totalPage = Math.ceil(p.totalCnt / 10);
p.endPage = Math.ceil(page / 5) * 5;
p.startPage = p.endPage - 4;
p.prev = true;
p.next = true;
if(p.totalPage <= p.endPage){
p.endPage = p.totalPage;
p.next = false;
}
if(p.startPage == 1) {
p.prev = false;
}

res.render('board/board', {list:list, p:p});
});
});


<div class="row mt-3 justify-content-center d-flex">
<ul class="pagination">
<% if (p.prev) { %>
<li class="page-item">
<a class="page-link" href="/board?p=<%= p.startPage - 1 %>">이전</a>
</li>
<% } %>
<% for (let i = p.startPage; i <= p.endPage; i++) { %>
<li class="page-item">
<a class="page-link" href="/board?p=<%= i %>"><%= i %></a>
</li>
<% } %>
<% if (p.next) { %>
<li class="page-item">
<a class="page-link" href="/board?p=<%= p.endPage + 1 %>">다음</a>
</li>
<% } %>
</ul>
</div>
node js를 사용해서 게시판을 개발 하고 있습니다. 페이징 구현방법에 대해서 조언 부탁드립니다.
1부터 10까지에서 10이 선택 되면 5 ~ 10 ~ 14 로 구현하려 합니다.
0
0
  • 답변 1

  • UnknownDontknow
    374
    2019-06-10 12:40:46
    저는 쿼리문중에 limit 활용해서 만들어 봤어요. limit( m, n) 문이  m인덱스 값부터 n개의 값을 가져오는 방식이라 찾아보시면 페이징에 활용된 코드들 찾으실 수 있을거에요.
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.