이전 글 까지는 express 모듈을 불러와서 앱서로 만드는 방법을 설명했습니다. 이번에는 템플릿을 만들어보도록 하겠습니다. 모든 프로젝트에는필수적인 코드를 다시 짠다는건 생각만 해도.. 따라서 프로젝트의 기본적인 뼈대를 만들어놓고 프로젝트를 시작하도록 하는게 좋을거 같습니다. 뷰 엔진(클라이언트에게 보여지는 부분)에는 핸들바, jade, ejs, hogan이 존재합니다. 저는 친숙한 ejs로 제작할까 합니다.


먼저 generator를 설치하도록 하겠습니다.(http://expressjs.com/en/starter/generator.html )

$ npm install express-generator -g



이제 템플릿을 만들도록 하겠습니다. 

$ express myapp --ejs

express 템플릿을 만들 myapp이라는 이름으로 폴더를 저장하고 뷰 엔진을 ejs로 설정했습니다. 만약 --ejs를 뺀다면 default값인 jade가 설치됩니다(express 제작자와 jade 제작자가 같습니다). 또한 폴더 이름을 적지 않는다면 그 경로에 템플릿 엔진을 설치하게 됩니다. express만 입력하게 되면 해당 경로에 jade로 템플릿을 설치하게 됩니다.

.
├── app.js
├── bin
│   └── www
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.ejs
    ├── index.ejs
    └── layout.ejs

설치를 마치게 되면 다음과 같은 경로로 뼈대가 생성됩니다.



이제 해당 경로에 npm 을 설치하고 실행해보도록 하겠습니다.

$ npm install

$ npm start


> myapp@0.0.0 start /node/myapp

> node ./bin/www




다음과 같이 웹서버가 실행된걸 확인할 수 있습니다. 이제 브라우저로 http://localhost:3000/ 로 들어가보면 welcome to express 를 볼 수 있습니다.


views 경로로 들어가서 index.ejs의 소스코드를 보면 다음과 같이 되어있습니다. 

/views/index.ejs


<!DOCTYPE html>

<html>

<head>

<title><%= title %></title>

      <link rel='stylesheet' href='/stylesheets/style.css' />

</head>

<body>

<h1><%= title %></h1>

<p>Welcome to <%= title %></p>

</body>

</html>

<% %> 안에 자바스크립트 코드를 넣으면 됩니다. <%= %>는 표현식으로 어디선가 index.ejs로 title이라는 값을 보냈네요. 

이제 views 폴더에서 올라가 routes 폴더로 가면 index.js라는 파일이 있습니다. 이것도 소스코드를 보겠습니다.

/routes/index.js


var express = require('express');

var router = express.Router();

/* GET home page. */


router.get('/', function(req, res, next) {

res.render('index', { title: 'Express' });

});


module.exports = router;

router.get 함수 안에 res.render('index', {title : 'Express' }); 문장을 보면 index.ejs로 title의 값을 'Express'라고 지정하고 데이터를 보내는 부분이 있네요. 따라서 routes 에서 views로 데이터를 전송한다는걸 알수 있네요.


다음에는 메인 파일인 app.js 에 대해서 파악해보고 포트 변경도 해보겠습니다.


반응형

+ Recent posts