node.js에서 include 사용하는 법(버젼 주의)
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') %>
이런 식으로 해야한다.
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 |