본문으로 바로가기

EJS 뷰 엔진 사용하기

category Node, Nest, Deno/🚀 Node.js (+ Express) 2020. 3. 12. 05:33

ejs 설치 및 뷰 엔진 설정

npm i ejs
// app.js

app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");

 

ejs 사용

<% %>와 <%= %>, <%- %>를 잘 구별해야 합니다. 그 외엔 기존 HTML과 사용법이 완전히 똑같습니다.

 

 

변수 정의 및 활용

 

<% %> 내부에 js를 입력합니다. 여기에서 변수 정의도 가능합니다. 활용은 <%= 변수명 %>과 같이 활용합니다. 렌더링 함수로부터 전달받은 변수도 이런 방식으로 사용 가능합니다.

  <body>
    <% const name = "darren" %>
    <p><%= name %></p>
  </body>

 

if else

<% %> 내부에 js를 입력한다는 것을 이용하면 편리하게 작성할 수 있습니다. 여기서 포인트는 문법적 연속성과 상관없이 매 줄마다 <% %>를 추가해줘야 한다는 것입니다. 처음에는 굉장히 번거롭지만 쓰다보면 편해집니다.

 

PUG와는 다른 빡침을 느낄 수 있습니다...

 

for문

    <% for (i of [1, 3, 5]) { %>
    <p>the number is <%= i %></p>
    <% } %>

 

include

<%- include('주소', {전달할 변수}%>

  <body>
    <%- include('./layouts/header', {name: 'martin'}) %>
    <% for (i of [1, 3, 5])
    {%>
    <p>the number is <%= i %></p>
    <% }%>
    <div>이름은 <%= name %></div>
  </body>

 

 

layout, block

 

ejs에는 layout과 block이 없다.. 패키지를 설치해서 가능하긴 하지만 다른 템플릿 엔진을 사용하는게 낫다.

nunjucks를 추천한다.

 

 


 

요즘 대세 프론트는 React와 vue이다. pug나 ejs의 역할이 많이 줄어들었으니 너무 죽을 듯이 공부하지 않아도 된다.


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체