Open lky473736 opened 6 months ago
ejs 바인딩의 예시
<div class="white-bg">
<div class="list-box">
<h4> <%= 글목록[0].title %> </h4>
<p> <%= 글목록[0].content %> </p>
</div>
<div class="list-box">
<h4> <%= 글목록[1].title %> </h4>
<p> <%= 글목록[1].content %> </p>
</div>
ejs 구문을 작성하는 방식 중 special tag는 아래와 같다
근데 만약 위 바인딩의 예시 html들이 db에 저장된 document 수대로 필요하다면 일일히 손으로 작성하기가 힘드니 ejs 문법으로 자동화한다.
<div class="white-bg">
<%for(let i = 0; i < 글목록.length; i++){%>
<div class="list-box">
<h4><%= 글목록[i].title %></h4>
<p><%= 글목록[i].content %></p>
</div>
<%}%>
/div>
include 문법을 이용하여 다른 ejs 파일에 있는 html을 복붙할 수 있다. 보통 상단바와 같이 모든 url에 들어있어야 하는 것들을 일일히 ejs에 사용하기 힘드니 따로 상단바.ejs를 만들고 include로 복붙하여 사용한다.
<%- include ('nav.ejs') %>
<!--nav.ejs에 있는 html 파일을 전부 여기에 복붙해라-->
forum-express : log 2
forum을 만들 테크는 아래와 같다.
log 1에서는 express의 기본 틀을 다루었다면 log 2에선 DB 세팅과 ejs 세팅 및 동작 방식 등을 정리한다.
MongoDB vs RDB (관계형 데이터베이스)
여기서는 Atlas를 써서 클라우드 호스팅할 예정 (AWS)
MongoDB 연결 및 DB에 데이터 저장 / 데이터 불러오기
1) server가 db랑 통신하는 법
2) DB에 무언가를 저장할 때
3) DB에 있는 자료를 불러와야 할 때
ejs 세팅 및 작성 방식
ejs : html + template engine
app.set을 사용하여 express에 세팅해야 함
app.set('view engine', 'ejs');
template engine : html에 database에 있는 데이터들을 넣게 도와주는 라이브러리
서버사이드 렌더링 vs 클라이언트사이드 렌더링
현재 이 포럼의 구현방식은 서버사이드 렌더링이다.
views 폴더에 넣는 것이 관례
서버 데이터를 ejs 파일에 보내려면
응답.render('ejs파일명', {보낼데이터의이름 : find()로불러온데이터} );
<%= find()로불러온데이터.그데이터의key %>