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(); // 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> |