본문 바로가기

Node.js공부/예제를 통한 Node.js 공부

Node.js 공부 5 - express

반응형

Node.js로 웹서버의 필요기능을 하나하나 구현하기에는 무리가 있다. 라우팅, 세션관리 등등 이것저것 할 일이 많은 게 사실이다.


따라서, NodeJS의 웹프레임워크를 사용하면 간편하게 웹서버를 구축할 수 있다. 대표적으로는 Express, Koa, Hapi등이 있는데, express에 대하여 공부하고자 한다.


1. package.json 파일 생성

npm 페이지에서 말했던 것과 같이, 프로젝트의 이름, 버전, 의존패키지 리스트 등 정보들에 대한 정보를 담고있는 파일이다.


1.1 npm으로 Dependency(의존 패키지) 설치

$ npm install




2. Express 서버 생성

$ npm install express 


var express = require('express');
var app = express();
var server = app.listen(3000, function(){
console.log("Express server has started on port 3000")
})


Cannot GET / 이라는 텍스트가 나온다 

-> Router를 아직 정의하지 않았기 때문에




3. Router로 Request 처리하기 

브라우저에서 Request가 왔을 때, 서버에서 어떤 작업을 할 지 Router를 통하여 설정해 주어야 한다.


간단한 router를 작성해보자.

var express = require('express');
var app = express();
var server = app.listen(3000, function(){
console.log("Express server has started on port 3000")
})

app.get('/', function(req, res){
res.send("Hello World");
})




router 폴더와 server 폴더는 따로 생성하는 것이 좋다. 


router라는 폴더 안의 main.js 생성

module.exports = function(app)
{
app.get('/', function(req, res){
res.render('index.html')
});

app.get('/about', function(req, res){
res.render('about.html');
});
}


module.exports는 우리가 router 코드를 따로 작성했기에, server.js 에서 모듈로서 불러올 수 있도록 사용된다.


views폴더 안의 index.html, about.html생성

<html>
<head>
<title>Main</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
Hey, this is index page
</body>
</html>


<html>
<head>
<title>About</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
About... what?
</body>
</html>


server.js 업데이트 


var express = require('express');
var app = express();
var router = require('./router/main')(app);

app.set('views',__dirname+'/views');
app.set('view engine','ejs');
app.engine('html', require('ejs').renderFile);

var server = app.listen(3000, function(){
console.log("Express server has started on port 3000")
})


3번째 줄: 라우터 모듈인 main.jfs 를 불러와서 app에 전달해준다.

5번째 줄: 서버가 읽을 수 있도록 HTML 위치를 지정해준다.

6번째, 7번째 줄: 서버가 HTML 렌더링을 할 때, EJS 엔진을 사용하도록 한다.

(npm install ejs)


반응형

'Node.js공부 > 예제를 통한 Node.js 공부' 카테고리의 다른 글

Node.js 공부 7 - RESTful API  (0) 2019.02.05
Node.js 공부 6 - EJS  (0) 2019.02.05
node.js 공부 4- Callback function  (0) 2019.01.31
Node.js 공부 3 - npm  (0) 2019.01.31
Node.js공부 2 - 맛보기  (0) 2019.01.31