본문 바로가기
IT/web

Node.js ] 뷰 렌더링 // ejs, pug

by 깻잎쌈 2020. 2. 6.
반응형

둘 중 취향에 맞춰서..

 

Pug vs EJS?

 

dev.to

 


ejs

//app.js
//app.set('views', path.join(__dirname, 'views'));
// view 속성값으로 views 폴더를 지정 
app.set('views', __dirname +'/views');
app.set('view engine', 'ejs');
console.log('뷰엔진 ejs로 세팅 ');

...
//views 폴더에 login_success.ejs 파일 만들어놓고 
..

context 객체의 속성값을 login_success에 적용하고 결과를 콜백으로.

콜백함수의 html : 사용자가 보는 최종 웹 문서 코드 

// 뷰 템플릿으로 렌더링 후 전송 
var context = {userid: paramId, username :userName};
req.app.render('login_success', context, function(err, html){
     if(err){
         console.log('뷰 렌더링 중 오류 발생 : '+err.stack);
         ...
         }
         console.log('rendered : '+ html);
         res.end(html);
         ...

변수 넣을 때는 <%= 변수 %>

 

ejs파일에서 다른 ejs파일의 내용가져오기 

<%- include ('상대경로') ->

 

EJS -- Embedded JavaScript templates

Simple syntax JavaScript code in simple, straightforward scriptlet tags. Just write JavaScript that emits the HTML you want, and get the job done!

ejs.co

//head.ejs 
<head>
<meta charset ='utf-8'>
</head>

//다른 ejs 파일
// 상대경로로 지정
 <%- include ('./head') -%>


pug

app.set('view engine', 'pug');

렌더링 부분은 ejs와 같음.

변수 넣을때는 #{변수이름}

 

doctype html

html
 head
  title "성공"
  
 body
  block content
   #container
    p "조회 성공"

 

공통부분을 별도로 분리한후 사용할때는 상속 extends키워드를 사용한다

 

Template Inheritance – Pug

Template Inheritance Pug supports template inheritance. Template inheritance works via the block and extends keywords. In a template, a block is simply a “block” of Pug that a child template may replace. This process is recursive. Pug blocks can provide de

pugjs.org

반응형

댓글