자바스크립트 코드 안에 응답 문자열을 입력하는 것보다 응답 웹문서를 별도 파일로 만들어 사용하는 것이 더 좋다.
08-1 ejs 뷰 템플릿 사용하기
뷰 템플릿을 사용하면 웹 문서의 기본 형태는 뷰 템플릿으로 만들고 데이터베이스에서 조회한 데이터를 이 템플릿 안의 적당한 위치에 넣어 웹 문서를 만들게된다. 이렇게 뷰 템플릿을 사용해 결과 웹 문서를 자동으로 생성한 후 응답을 보내는 역할을 하는 것이 View Engine이다.
뷰 템플릿으로 로그인 웹 문서 만들기
//뷰 엔진 설정app.set('views',__dirname+'/views');app.set('view enginge','ejs');console.log('뷰 엔진이 ejs로 설정되었습니다.');
doctype html
html
head
meta(charset='utf8')
title 로그인 성공 페이지
body
h1 로그인 성공
div
p 사용자 아이디 : #{userid}
div
p 사용자 이름 : #{username}
br
br
a(href = '/public/login.html') 다시 로그인하기
doctype html
html
head
meta(charset='utf8')
title 사용자 리스트 페이지
body
h1 사용자 리스트
div
ul
- for (var i=0;i<results.length;i++){
- var curId = results[i]._doc.id;
- var curName = results[i]._doc.name;
li #{i} - 아이디 : #{curId},이름 #{curName}
- }
br
br
a(href = '/public/listuser.html') 다시 요청하기
//뷰 템플릿으로 렌더링한 후 전송var context = {results : results};req.app.render('listuser',context,function(err,html){if(err){console.error('뷰 렌더링 중 오류 발생'+err.stack);res.writeHead('200', {'Content-Type':'text/html;charset=utf8'});res.write('<h2>뷰 렌더링 중 에러 발생</h2>');res.write('<p>'+err.stack +'</p>');res.end();return; }console.log('rendered : '+html);res.end(html);});
pug 템플릿으로 사용자 추가 웹 문서 만들기
doctype html
html
head
meta(charset='utf8')
title extends로 상속함
script(src = 'public/jquery-2.1.4.min.js')
body
block content
include ./footer.pug