NodeJS

[NodeJS] - 라우터(Router) 분리하기(매우 중요)

Riucc 2018. 11. 9. 01:26

○ 라우터(Router) 분리하기(매우 중요)

 

라우터 분리는 왜 하는가? 

   많은 라우팅 작업(POST ,GET, PUT, DELETE)이 있기 때문에, 

   서로 연관되어 있는 라우터끼리 쪼개서 파일로 분리하면 관리하기도 쉽고 다루기 편하다


아래 예시를 살펴보겠다


// main.js


var express = require('express');
var app = express();

// routes에 모듈로 만들어 놓은 user.js와 board.js 가져온다
// app.use로 모듈을 사용('경로', 가져온 모듈 적용)
// 그렇다면 우린 /user와 /board로 경로를 지정해놨기에
// http://localhost:3001/user/ 로 들어가면
// user.ejs 가 실행될꺼고
// http://localhost:3001/user/rhkwk44 로 들어가면
// received user id : rhkwk44 가 출력될 것이다
var user = require('./routes/user');
app.use('/user', user);
var board = require('./routes/board');
app.use('/board', board);

app.get('/', function(req, res){
res.send('hello world');
});

app.listen(3001, function(){
console.log('port 3001 listening');
});


// routes/board.js


// board 라운트 모듈화
var express = require('express');
var router = express.Router();

// /:boardNum 으로 데이터를 받아서
// req.params.boardNum으로 입력한 데이터를 가져올 수 있다
router.get('/:boardNum', function(req, res){
res.send('received boardNum : ' + req.params.boardNum);
});

// res.render('경로')를 통해 ejs 페이지를 출력할 수 있다

// ejs 를 사용하기 위해서는 모듈을 설치해야한다

// npm install ejs

router.get('/', function(req, res){
res.render('../board.ejs')
});


// 만든 모듈을 추출하는 것이다

module.exports = router;


// routes/user.js


// user 라운트 모듈화
// 주석은 board.js 랑 상동
var express = require('express');
var router = express.Router();

router.get('/:id', function(req, res){
res.send('received user id : ' + req.params.id);
});

router.get('/', function(req, res){
res.render('../user.ejs')
});

module.exports = router;


// board.ejs 와 user.ejs


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
여기는 board 게시판! ejs로 작성했다<br/>
ejs 사용하려면 모듈 ejs 설치해야한다<br/>
npm install ejs
</body>
</html>