2030 Engineer

EJS 본문

WEB/Node.js

EJS

Hard_Try 2021. 3. 5. 00:49

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);
});

  1. ejs를 set한다.
  1. query를 통해 이름을 받는 코드. 모든 query들은 req.query에 저장된다.
  1. route parameter를 통해 이름을 받는 코드. 콜론(:) 으로 시작되는 route는 해당 부분에 입력되는 route의 텍스트가 req.params 에 저장된다.

    /hello/Lee 라고 입력시 Leereq.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 코드는 <% %> 에 들어가야 한다.

변수 출력은 <%= [변수이름] %> 을 사용한다.

'WEB > Node.js' 카테고리의 다른 글

에러 처리 (flash)  (0) 2021.03.05
계정 비밀번호 암호화 (Hash 함수)  (0) 2021.03.05
패키지 전역 설치 (nodemon)  (0) 2021.03.05
서드파티 모듈 (심화)  (0) 2021.03.05
Node.js로 웹서버 만들기  (0) 2021.01.13
Comments