Node.js | EJS 템플릿 엔진 | 템플릿에서 사용할 수 있는 특수 태그

EJS는 템플릿이 되는 HTML 코드에 특수 태그를 사용하여 필요한 정보를 포함할 수 있다. 준비되어 있는 태그는 다음 두 가지이다.

<%= 값 %>

작성한 값을 그 자리에 써 낸다. 스크립트 측에서 준비한 변수 등을 표시하는데 사용한다. HTML 태그 등이 포함되어 있는 경우, 그들은 이스케이프 처리된다.

<%- 값 %>

마찬가지로 값을 그 자리에 써 낸다. 다만, 이곳은 HTML 관련 태그는 이스케이프 처리되지 않고 그대로 쓰여진다.

<% 스크립트 %>

스크립트를 작성하고, 그것을 렌더링할 때 실행한다. 이것은 HTML에 <script> 태그로 작성된 스크립트와는 다르다. <script> 태그는 클라이언트(브라우저)에 보내져 실행되지만, 이 <% %>으로 작성된 태그는 서버 사이드(Node.js 내)에서 실행되어 그 결과가 클라이언트로 보내진다.

이 태그는 닫기 부분은 모두 공통적 %>로 되어 있지만, 이것을 -%>와 같이 마이너스를 붙여 작성하면 값을 출력하고, 후에 줄바꿈할 수 있다.

실제로 이러한 태그를 어떻게 사용하는지는 해보지 않으면 모른다. 그럼, 간단한 예제를 만들어 보자. 아래 에 예제를 올려 두었다. 이것을 “hello.ejs"라는 파일 이름으로, Node.js 스크립트 파일과 동일한 위치에 저장한다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title><%=title %></title>
    <style>
    body { font-size:12pt; color:#006666; }
    h1 { font-size:18pt; background-color:#AAFFFF; }
    pre { background-color:#EEEEEE; }
    </style>
</head>

<body>
    <header>
        <h1 id="h1"><%=title %></h1>
    </header>
    <div role="main">
        <p><%-content %></p>
    </div>
</body>
 
</html>

이것이 EJS 템플릿 파일이다. 템플릿 파일은 일반적으로 “. ejs"확장명으로 만든다. 여기에서는 HTML에 다음과 같은 태그를 포함하고 있다.

<%=title %>
<%-content %>

이것들은 각각 title, content라는 변수를 출력하게 된다. 그것은 스크립트 측에서 이러한 변수를 준비하고, 템플릿 측에 전달할 수 있다면 되는 거다. <%= %><%- %> 템플릿의 가장 기본이되는 것이라고해도 좋을 것이다. (덧붙여 content 출력은 <%= 대신 <%-을 사용하고 있다. 이것은 좀 더 나중에 이유를 알 수 있다)