Node ch.03 _ View engine을 이용한 응답처리
ejs나 jade와 같은 템플릿 엔진을 활용해 view 템플릿을 활용해 응답 할 수 있다
-
ejs 모듈 설치
$ npm install ejs --save
pakage.json에 자동 업데이트 된다.
-
모듈 사용해서 나타내기 :: app.js
app.set('view engine', 'ejs')
- /views 경로 생성, /views/email.ejs 파일 생성
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>email ejs template</title>
</head>
<body>
<h1>Welcom !! <%= email %> </h1>
<p>Nice to meet you</p>
</body>
</html>
- email.ejs를 사용하려면 :: app.js
var express = require('express')
var app = express()
var bodyParser = require('body-parser')
app.listen(3000, function() {
console.log("start@ on port 3000");
});
app.use(express.static('public'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
app.set('view engine', 'ejs')
app.get('/', function(req,res){
console.log('test');
res.sendFile(__dirname + "/public/main.html")
})
app.get('/main', function(req,res){
res.sendFile(__dirname + "/public/main.html")
})
app.post('/email_post', function(req,res){
console.log(req.body.email)
//res.send("<h1>Welcome!" + req.body.email + "</h1>")
res.render('email.ejs', {'email' : req.body.email})
})
위 코드의 ejs를 랜더링 해주는 부분을 살펴보면,
` res.render('email.ejs', {'email' : req.body.email}) `
/views/email.ejs 로 경로까지 지정하는것이 아니라 email.ejs 만 입력해 준 것을 확인할 수 있다.
view engine을 사용하면, 알아서 /views/XXX.ejs 경로에 위치한 .ejs 파일을 랜더링 하므로, 파일이름만 입력해주면 된다.
- 실행 결과 확인