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를 넘겨받아 비교하여 처리할 수 있다.