웹개발/node.js

node.js에서 include 사용하는 법(버젼 주의)

육만 2021. 2. 1. 14:00

JSP에서 사용하는 것처럼

html파일을 해체해서 include를 쓰고 싶었다.

 

 

그런데 이놈의 ejs 템플릿 엔진은

쉬운듯 하면서도 따라했는데

막 안돼!

오류가 계속 발생했다.

 

오류 내용은 syntaxerror: Unexpected token

흥분을 가라앉히고 일단 ejs 사용 방법부터 적어본다.

 

일단 기본적으로 express 환경을 세팅해줬다.

 

아무것도 없는 상태에서

express와 ejs 모듈을 세팅하기 위해서는

커맨드창에

 

npm init

입력하여 package manager를 설치하고

npm i express, ejs

입력하여 express와 ejs 모듈을 설치한다.

 

그리고 main.js에 위 코드를 입력하여

express를 사용할 준비를 한다.

 

 

view-engine으로 ejs를 사용한다고 선언하고

 

1
2
3
app.get('/', function(request, response) {
  response.render('index.ejs', {name : 'User'});
})
cs

 

main에서 역시 get method로 '/'주소로 들어갈 때,

response로 index.ejs를 불러온다는 코드를 작성한다.

두번째 인자는 파라미터로 보낼 값이다.

즉, name이라는 파라미터로 'User'를 보낸 것.

 

그러면 index.ejs에서

<%= name %>을 써주면

'User'값으로 동적으로 변환된다.

 

 

여기서 중요한 것은

ejs파일은

'views'폴더 아래에 넣어야한다는 것.

 

 

나는 'view'폴더라고 했다가

계속 못 불러와서 삽질했다.

 

 

본론으로 돌아와서

include를 해서 외부 파일을 html에

불러올 때,

기존 2.대 버젼에서는

<% include ./nav %>

이런식으로 했나보다.

 

 

검색해보니까 저것만 나와서

따라쳤는데 계속 오류가 발생했다.

 

 

3.대 버젼부터는

<%- include('nav.ejs') %>

이런 식으로 해야한다.

 

1
2
3
<nav>
  <%- include('nav.ejs') %>
</nav>
cs

 

아래 공식 문서를 찾아보면 나와있다.

github.com/mde/ejs

 

mde/ejs

Embedded JavaScript templates -- http://ejs.co. Contribute to mde/ejs development by creating an account on GitHub.

github.com

 

찾기 귀찮을테니 공식문서 부분을 발췌해왔다.

아래처럼 인자를 넘길 때는 괄호 안에 두번째 인자로

받으면 끝.

1
2
3
4
5
<ul>
  <% users.forEach(function(user){ %>
    <%- include('user/show', {user: user}) %>
  <% }); %>
</ul>
cs