Embedded JavaScript
Express에서 dynamic website를 만들기 위해 template으로 사용되는 파일이다.
// index.js
var express = require('express');
var app = express();
app.set('view engine','ejs'); // 1
app.use(express.static(__dirname + '/public'));
app.get('/hello', function(req,res){ // 2
res.render('hello', {name:req.query.nameQuery});
});
app.get('/hello/:nameParam', function(req,res){ // 3
res.render('hello', {name:req.params.nameParam});
});
var port = 3000;
app.listen(port, function(){
console.log('server on! http://localhost:'+port);
});
- ejs를 set한다.
- query를 통해 이름을 받는 코드. 모든 query들은
req.query
에 저장된다.
- route parameter를 통해 이름을 받는 코드.
콜론(:)
으로 시작되는 route는 해당 부분에 입력되는 route의 텍스트가req.params
에 저장된다./hello/Lee
라고 입력시Lee
가req.params.nameParam
으로 저장된다.
ejs 파일을 사용하기 위해서는 res.render
함수를 사용해야 하며, 첫번째 parameter로 ejs의 이름, 두 번째 parameter로 ejs에서 사용될 object를 전달한다. res.render
함수는 ejs를 /views 폴더에서 찾으므로 폴더명 변경을 하면 안된다.
<!-- views/hello.ejs -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello World!</title>
<link rel="stylesheet" href="/css/master.css">
</head>
<body>
<h1>Hello
<% if(name){ %>
<span class="name"><%= name %>!</span>
<% } else { %>
<span class="stranger">Stranger!</span>
<% } %>
</h1>
</body>
</html>
EJS는 html에 js 코드가 더해진 형태를 하고 있다. js 코드는 <% %>
에 들어가야 한다.
변수 출력은 <%= [변수이름] %>
을 사용한다.
Uploaded by Notion2Tistory v1.1.0