.ejs
npm install ejs
입력!package.json
파일에서 내용이 추가된 걸 볼 수 있다.▶️ EJS 템플릿 설정
app.set()
으로 Express에게 EJS를 사용할 것이라고 알려준다.//set은 서버 객체를 설정해주는 메소드로 생각하자.
//인자는 두 개 넣을 수 있다.
//1) 바꾸싶은 설정이 가지고 있는 이름, 2) 변경 할 설정값
//app객체의 view engine 설정을 ejs로 변경하겠다.
app.set("view engine", "ejs");
//이렇게 설정이 되고 나면 새로운 express가 만들어지고
//앞으로 view engine을 사용할 때 express는 views나 템플릿이 views디렉토리 안에 있다고 가정하게 된다.
//간단히 ejs파일들이 views폴더에 모아서 담겨져 있다고 생각하면 된다!
//app객체의 view폴더 설정하게 되는 것. 아래가 기본값!
app.set("views", "./views");
//만약 ./view 폴더로 바꾸고 싶다면? 아래 형식으로 작성하면 된다.
app.set("views", "./view")
▶️ EJS 템플릿 렌더링 (파일 연결해서 가져오기)
res.render(렌더링 할 파일 경로인 문자열)
사용해 파일이나 템플릿을 보낼 수 있다.express
에서는 res.send
를 사용했다.get
을 이용한다.render()
메소드는 이미 현재 위치의 views폴더에 ejs파일이 모여있다고 가정하기 때문에 파일 경로와 확장자는 적어주지 않아도 된다.//폴더 구조가 [메인폴더 > ejs파일] 이고,
//[메인폴더 > test 폴더 > ejs파일]인 경우
//[메인폴더 > ejs파일] (test폴더 밖에 있는 ejs)
app.get("/ejs", function (req, res) {
res.render("index.ejs");
});
//[메인폴더 > test 폴더 > ejs파일] (test폴더 안에 있는 ejs)
app.get("/ejs", function (req, res) {
res.render("test/index");
});
▶️ EJS 템플릿 렌더링 (파일 연결해서 값을 내보내기)
res.render("화면 이름", 화면에 전달할 값 {key : 'value'});
lily.ejs
라는 파일이 있다면. 그 파일에 값을 보낸다. 그리고 해당 주소를 웹브라우저에서 열었을 때, lily.ejs
기존에 작성되어있던 내용과 보내진 key 값들이 사용되어 화면에 나타난다.app.get("/lily", function (req, res) {
res.render("lily", {
name: "lily",
product: ["운동화", "후드", "슬리퍼"],
});
});
//즉 lily.ejs 라는 파일에서 사용할 수 있는 값들을 보내준다고 보면 된다.
<% %>
JS코드가 들어가야 한다.
한 줄로 작성해야 한다! 줄바꿈이 될 경우 <% %>
안에 넣어준다.
//파일 A-----------------------------
//product값은 res.render를 통해 아래 값이 파일B로 내보내졌다.
app.get("/FileB", function (req, res) {
res.render("FileB", {
name: "lily",
product: ["운동화", "후드", "슬리퍼"],
});
});
//여기서 for문의 경우 중괄호가 줄바꿈이 되며 작성되었다.
//첫 줄과 마지막 줄이 <% %>로 묶여있다.
<%= %>
값을 템플릿에 출력할 때 사용
//파일 B-----------------------------
<% for(let i = 0; i < product.length; i++) { %>
<div>상품 <%=product[i] %></div>
<% } %>
//product[i]는 파일A에서 res.render를 통해 내보내진 값이다.
//그 값을 사용하는 거기 때문에 <%= %>로 묶여있다.
<%= %>
와 <%- %>
=
이 오면 뒤에 있는 값을 그대로 html로 노출시킨다. (html인식 x)
-
이 오면 html을 인식해서 노출시킨다.
<%="hello" %>
<%="<div>그대로 나온다</div>"%>
<%-"<div>태그 안보이지</div>"%>
<%- include(”view의 상대주소”) %>
다른 view파일을 불러올 때 사용한다.
<%-include("header.ejs") %>
//header.ejs 라는 파일을 불러오겠다.
<%-include("header.ejs") %>
<%-include("main.ejs") %>
<%-include("visualImage.ejs") %>
<%-include("footer.ejs") %>
💬