Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- node.js
- 자바스크립트기본
- js ajax
- 개발자학습
- 자바스크립트학습
- 리액트
- 프론트엔드공부
- MongoDB
- 자바스크립트 학습
- API
- node.js학습
- 개발공부
- 프론트엔드 공부
- JavaScript
- 네트워크
- 자바스크립트
- 정보처리산업기사
- 프론트엔드학습
- Vue.js
- 프로토콜
- node.js프로젝트
- react
- nodejs
- JS
- node.js 학습
- 개발자공부
- 개발자지식
- js학습
- vue.js학습
- 프론트엔드
Archives
- Today
- Total
dada's
[Node.js] node.js 프로젝트 - To Do App 만들기 6 (HTML에 DB데이터 넣는법) 본문
728x90
HTML에 실제 데이터를 넣어서 보내주기 위해서는 EJS, Pug같은 템플릿 엔진을 사용한다
EJS는 서버 데이터를 HTML에 쉽게 넣을 수 있게 도와주는 HTML 렌더링 엔진이다
이것을 사용하여 DB의 데이터를 HTML에 넣어보자
1. EJS설치
터미널에 npm install ejs를 하고 server.js 상단에 이 코드를 넣어준다
app.set('view engine', 'ejs');
2. EJS파일 만들기
EJS는 HTML과 똑같이 만들어 쓰면 된다
주의할점 : 작업폴더 내에 views라는 이름의 폴더를 하나 만들고 거기에 ejs파일을 만들어야함
나는 list.ejs라는 파일을 하나 생성했다
3. MogoDB에서 데이터 꺼내기
db.collection('post').find()
db.collection('post).findOne()
이런식의 문법을 쓰면 데이터를 꺼낼 수 있는데, 'post컬렉션에 있는 모든 데이터를 가져와주세요'라고 코드를 짜려면 .find().toArray()를 사용하면 collection('post')안의 모든 데이터를 array 자료형으로 가져온다
app.get('/list', function (요청, 응답) {
db.collection('post').find().toArray(function (에러, 결과) {
console.log(결과);
응답.render('list.ejs', { posts: 결과 }); //랜더링해주는 문법
});
});
그리고 가져온 자료형을 list.ejs파일에 넣어주기 위해 .render()라는 함수에 두번째 파라미터에 이렇게 적으면 list.ejs파일을 렌더링함과 동시에 {post: 결과}라는 데이터를 함께 보내준다
3. EJS기본 문법
<!-- ejs 문법: <% %>여기 안은 자바스크립트 문법을 실행하는 곳임 -->
<div class="container-md mt-5">
<h2 class="my-3">서버에서 가져온 To Do List</h2>
<ul class="list-group">
<% for (var i=0; i < posts.length; i++){ %>
<li class="list-group-item">
<h4>
제목 : <%= posts[i].title %>
</h4>
<p>
내용 : <%= posts[i].text %>
</p>
<button>삭제</button>
</li>
<% } %>
</ul>
</div>
반복문을 함께 사용해서 post갯수만큼 반복문이 돌면서 데이터를 넣어준다
728x90
'Node.js' 카테고리의 다른 글
[Node.js] node.js 프로젝트 - To Do App 만들기 8 (AJAX로 삭제 요청하기 ) (0) | 2022.07.05 |
---|---|
[Node.js] node.js 프로젝트 - To Do App 만들기 7 (게시물마다 번호 달기 ) (0) | 2022.06.29 |
[Node.js] node.js 프로젝트 - To Do App 만들기 5 (Database에 자료 저장하기 + MongoDB) (0) | 2022.06.21 |
[Node.js] node.js 프로젝트 - To Do App 만들기 4 (폼에 입력한 데이터를 서버에 전송하기 POST요청) (0) | 2022.06.20 |
[Node.js] node.js 프로젝트 - To Do App 만들기 3 (서버에서 HTML파일 전송) (0) | 2022.06.18 |
Comments