Search
▪️

EJS

Installing EJS

Handlebars에서 이용했던 것처럼 별도의 Import나 Engine에 대한 설정이 없이도 이용 가능하다.
Pug처럼 별도의 설정 없이 app.set()을 통해서 바로 이용할 수 있다.

EJS Features

EJS에서는 변수에 대한 값 출력을 하고 싶다면 <%= %>와 같은 기호를 이용한다.
EJS에서 바로 값을 출력하고 싶은 경우가 아니라면 <%다음에 =을 붙일 필요는 없다. 즉, 분기문이나 반복문을 이용하고 싶은 경우에 <%만 이용하면 된다.
해당 구문 안에는 Vanilla JavaScript Code를 그대로 이용할 수 있다. 만일 if문을 이용한 경우 해당 if문이 감쌀 HTML CODE 블럭 아래에 <% } %>와 같이 괄호를 닫을 수 있도록 한다. (이는 반복문도 마찬가지이다.)
EJS에서 반복문은 for (let variable of variables)로 Loop를 돌려도 되고, 특정 array에 대해서 .forEach를 이용하여 Loop를 돌려도 된다.

EJS Layouts

EJS는 Layout기능을 별도로 지원하지 않지만 특정 Block에 대해서 Code Reusability 관련해서 이용하는 기법은 있다.
해당 기법들은 Partials나 Includes라고 부른다. 즉, 하나의 Master인 Layout이 존재하는 것이 아니라 여러개의 분리된 View Parts들이 있는 것이다. 통상적으로 이런 Partials를 관리하기 위해서 views/includes로 관리한다. 해당 디렉토리에는 반복되는 코드 Parts들을 정리하는 것이라고 보면 된다.
이렇게 includes로 빼둔 Parts들에 대해서 다른 Template 파일에 Import하여 쓰고 싶을 때 <%- 키워드를 통해서 include 명령을 쓸 수 있다. <%-의 역할은 해당 키워드 안에 들어오는 문자열에 대해서 <%=과 같이 HTML Code를 갖고 있는 변수에 대해서 HTML Code로 처리하게 두는 것이 아니라 있는 그대로의 문자열로 인식하여 처리하게 한다.
따라서 <%- include('includes/head.ejs') %>와 같이 Parts들을 Import 한다.
이렇듯 Parts를 Import하여 사용할 때, 동적으로 처리를 해야하는 경우라면 Pug에서 이용했던 기법 처럼 Path를 넘겨받아 비교하여 처리할 수 있다.