익스프레스는 여러 가지 뷰 엔진을 지원한다.
보통은 퍼그(Pug)라는 뷰 엔진이 유명한데, 템플릿 자체가 HTML처럼 보이지는 않는다.
나는 퍼그로 처음 설치를 진행했었다가 결국엔 포기했다 :)
너무 추상화 된 기능이라 html
에 익숙하지 않은 나는 코드 작성이 더뎌졌기 때문이다.
적용하면 빠르게 작성 가능할 지 몰라도... node
연습 중인 나에게 뷰 코드에
온전히 시간을 쏟을 순 없으니...
대신 조금 더 HTML
과 가까운 핸들바를 이용.
설치방법
npm install express-handlebars@3
npm
으로 간편하게 설치할 수 있다.
버전 같은 경우는 맞는 버전으로 편하게 설정하자.
설치가 끝난 후
package.json
내에 "express-handlebars
"가 추가 되었으면 성공!
뷰 엔진 기본값 적용
// app.js
const express = require('express')
const expressHandlebars = require('express-handlebars')
const app = express()
app.engine('handlebars', expressHandlebars({ // 뷰 엔진, 핸들바 인스턴스 생성
defaultLayout: 'main' // 기본값 설정
}))
app.set('view engine', 'handlebars')
html에 핸들바 적용하기
<!-- views/layouts/main.html -->
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
{{{body}}}
</body>
</html>
<!-- views/home.handlebars -->
<h1>Hello Express Handlebars</h1>
핸들바 파일안에는 실제 화면에 뿌려질 코드 부분만 작성.
예시로 h1
태그를 이용해 문자를 표현해 보겠다.
라우트 설정으로 뷰 사용하기
const express = require('express')
const expressHandlebars = require('express-handlebars')
const app = express()
app.engine('handlebars', expressHandlebars({
defaultLayout: 'main'
}))
app.set('view engine', 'handlebars')
app.get('/', (req, res) => res.render('home'))
서버를 재시작하고 메인 페이지(localhost:3000/
)를 가면 뷰가 렌더링된 모습을 볼 수 있다.
main.handlebars
에 작성한 HTML이 그대로 사용되는 것을 확인할 수 있다.
728x90