본문 바로가기
NodeJS

NodeJS 7강 : express route

by NodeMan 2019. 10. 25.

NodeJS 7강 : express route

======================================================================

 

라우터

백엔드를 구성하는 방법은 여러가지가 있으며 저 또한 저만의 방식을 찾아서 보완해나갑니다.

혹은 프로젝트를 다시 구성하면서 어떤 방향이 더 좋은 방향인지를 찾아보곤 하죠.

 

그리고 이 라우트 기법은 관리를 어떻게 하느냐에 따라서 자신이 만든 백엔드 서버의 접근성, 유지보수의 성능이 결정됩니다.

 

또한 백엔드 구성을 할때 라우트를 나누면 각 개발자별로 맡은 라우트 앱만 구현하면 개발의 시간 소모도 줄어들게 됩니다.

라우트 관리를 하게 되면 그 뒤에 따라오는건 path의 룰도 있겠죠.

 

원래 서버를 구성하기에 앞서서 웹 프로젝트 모델링 작업을 해줘야하는데요.

간단한 게시판 CRUD 기능을 구현할 예정이니 따로 모델링 같은건 안해줘도 상관 없을거 같네요.

 

URL 패턴은 메인 페이지, 게시판 정도만 있으면 되겠군요.

그럼 라우터는 1개만 있으면 되겠군요.

만약 규모가 큰 프로젝트라면 라우터가 더 많이 늘어나겠지요.

 

라우터의 다른 기법이 궁금하다면 express 모듈의 api 문서를 참조하시기 바랍니다.

route 파일 생성

route/notice.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import express from 'express';
const router = express.Router();
 
router.use(function(req, res, next) {
    console.log('notice middle ware');
    next();
});
 
router.get('/'function(req, res) {
    res.send('router1');
});
 
router.get('/select'function(req, res) {
    res.send('select');
});
 
module.exports = router;
cs

route/test.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import express from 'express';
const router = express.Router();
 
router.use(function(req, res, next) {
    console.log('test middle ware')
    next();
});
 
router.get('/'function(req, res) {
    res.send('test nodeman');
});
 
router.get('/nodeman'function(req, res) {
    res.send('nodeman');
});
 
module.exports = router;
cs

이 라우터 정보는 app.js에 등록을 해줄 수 있는데요.

express api 문서를 확인하면

birds.js
app

라우터를 하나의 앱 모듈로 만들고 등록을 시키면된다고 나와있습니다.

저는 이 라우터 정보를 설정 파일로 관리할 예정입니다.

 

routePattern

홀수와 짝수 패턴으로 url 패턴과 실제 route 설정을 가져오게 했습니다.

 

conf.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var conf = {
    db_info: {
        connectionLimit: 10,
        waitForConnections: true ,
        host: "192.168.0.178",
        user: "nodeman",
        password: "1234",
        database: "node",
        port: 3306,
        charset: 'utf8'
    },
    routePattern: ['/notice', require('../route/notice'), '/test', require('../route/test')],
}
 
module.exports = conf;
cs

app.js에 설정 파일의 정보로 라우터를 등록합니다.

 

app.js

1
2
3
4
5
6
7
8
9
10
    routing(app) {
        app.get('/'function(req, res) {
            render(res);
        });
 
        for(var i = 0; i < routePattern.length; i = i + 2) {
            console.log(`Router Create ${routePattern[i]}`);
            app.use(routePattern[i], routePattern[i + 1]);
        }
    }
cs

 

서버를 키고 확인하고 아래 처럼 웹 서버에 접속이 가능하면 이번 강의에서 가지고 가실 내용의 전부입니다.

 

> 7강을 마치며

백엔드 서버의 구성을 이미 알고 있는 상태에서 막상 글로 지식을 남기고 누군가에게 공유한다는게

정말 힘든거 같습니다. 어떻게 보면 강의를 쓰는분들이나 기술을 가르쳐주시는분들이 대단하다고 느껴지네요.

 

이번 라우트 파트가 끝나면서 본격적으로 예외 처리와 데이터 송수신 기법의 글을 쓸수 있게됐네요.

 

GitHub URL : https://github.com/BlackPing/node

'NodeJS' 카테고리의 다른 글

NodeJS 6강 : 정적파일, 화면처리  (0) 2019.10.25
NodeJS 5강 : MySql 연동  (0) 2019.10.23
NodeJS 4강 : express middleware  (0) 2019.10.23
NodeJS 3강 : Babel7, nodemon  (0) 2019.10.21
NodeJS 2강 : express 시작하기  (0) 2019.10.21

댓글