Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- git vscode
- __dirname
- serializeUser
- deserializeUser
- mongodb 입출력
- GitHub Actions
- react#로스트아크#mbti#테스트
- typescript #class #constructor #public #private #static #extends #protected #typeof #in #instanceof #never
- typescript #unknown
- e.target
- github#githubpages#빈화면#basename
- typescript #import #export #*
- Passport
- connect-mongo
- typescript #class #extends #public #private #protected #static
- sendFile
- Promise #async #await #try #catch
- CSS
- ejs 문법
- 정적 페이지
- updatemany
- insertone
- github#githubpages#gh-pages#deploy
- git#github#init#add#commit#restore#log#staging area#repository#git사용법
- typescript #constructor #class #public #private
- typescript #react #jsx #component #usestate
- updateone
- expess
- TypeScript #문법
- github#로컬저장소#원격저장소
Archives
- Today
- Total
VaIice의 이야기
[Node.js] 페이지 기능 만들기 본문
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>
<% } %>
'[Node.js]' 카테고리의 다른 글
[Node.js] 비밀번호 암호화 (hashing) 및 회원가입 예제 (2) | 2024.07.18 |
---|---|
[Node.js] Session, Token, OAuth, passport (2) | 2024.07.16 |
[Node.js] 서버로 데이터 보내기, 게시글 삭제 만들기 (2) | 2024.07.16 |
[Node.js] 게시글 수정 만들기 (0) | 2024.07.15 |
[Node.js] 상세 페이지 만들기 (0) | 2024.07.14 |