Riucc's Storage
RSS
태그
관리
쓰기
카테고리
  • IT (593)
    • 정리 (0)
    • C# (42)
    • ASP.NET MVC (16)
    • JQuery&Javascript (12)
    • CSS (11)
    • 데이터베이스 (32)
    • Windows Server (6)
    • Active Directory (3)
    • Exchange (9)
    • JAVA (2)
    • JSP (39)
    • JSP 게시판 만들기 (21)
    • JSP 개발 참고 (15)
    • JSP 안드로이드 (4)
    • Servlet (17)
    • Spring (42)
    • HTML (14)
    • NodeJS (46)
    • MongoDB (11)
    • 리눅스 (18)
    • 자료구조 (16)
    • 아이폰 (24)
    • 안드로이드 (68)
    • API 활용하기 (10)
    • 소켓네트워크 (28)
    • 라즈베리파이 (11)
    • AWS클라우드 (10)
    • 빅데이터Hadoop (22)
    • 커널모듈프로그래밍 (8)
    • 기타 (10)
    • 자격증 (26)
Riucc's Storage

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

NodeJS|2018. 11. 9. 01:26
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

○ 라우터(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>








저작자표시 (새창열림)

'NodeJS' 카테고리의 다른 글

[NodeJS] - 대용량 처리를 깔끔하게 하기위한 compression 미들웨어  (0) 2018.11.10
[NodeJS] - app.post() : POST 방식을 위한 body-parser 미들웨어  (0) 2018.11.10
[NodeJS] - 프로젝트 생성 시 npm init 과 express 설치  (0) 2018.11.08
[NodeJS] - VSCode 사용 (자주 사용하는 개발 툴)  (0) 2018.11.08
[NodeJS] - Postman 사용 (post, put, delete 라우팅 데이터 확인)  (0) 2018.11.08

댓글()
카테고리
  • IT (593)
    • 정리 (0)
    • C# (42)
    • ASP.NET MVC (16)
    • JQuery&Javascript (12)
    • CSS (11)
    • 데이터베이스 (32)
    • Windows Server (6)
    • Active Directory (3)
    • Exchange (9)
    • JAVA (2)
    • JSP (39)
    • JSP 게시판 만들기 (21)
    • JSP 개발 참고 (15)
    • JSP 안드로이드 (4)
    • Servlet (17)
    • Spring (42)
    • HTML (14)
    • NodeJS (46)
    • MongoDB (11)
    • 리눅스 (18)
    • 자료구조 (16)
    • 아이폰 (24)
    • 안드로이드 (68)
    • API 활용하기 (10)
    • 소켓네트워크 (28)
    • 라즈베리파이 (11)
    • AWS클라우드 (10)
    • 빅데이터Hadoop (22)
    • 커널모듈프로그래밍 (8)
    • 기타 (10)
    • 자격증 (26)
최근 등록 현황
최근 글
최근 월별 글
최근 댓글
최근 글
최근 월별 글
최근 댓글
최근 글
최근 월별 글
최근 댓글
달력
지난달
2025.7
다음달
일월화수목금토
12345
6789101112
13141516171819
20212223242526
2728293031
태그 구름
  • 리눅스
  • 정보처리산업기사 필기 정리
  • 정보처리기사 실기 정리
  • 안드로이드 카카오 로그인 연동
  • 안드로이드 카카오 로그인
  • 안드로이드 intent
  • 카카오 로그인 연동
  • 데이터베이스
  • 카카오 로그인
  • 정보처리산업기사 16년
  • 커널 모듈 프로그래밍
  • 정규형
  • 정보처리산업기사 요약
  • 안드로이드
  • 자료구조
  • 정보처리산업기사 정리
  • 소켓
  • 정보처리산업기사 총정리
  • 정보처리산업기사 15년
  • nodejs MySQL 연동하기(Connection Pool)
  • 정보처리산업기사 15년 필기
  • 정보처리산업기사 16년 필기
  • 정규화
  • 정보처리산업기사 필기
  • HTML
  • 이클립스 디비 연동
  • 소켓 프로그래밍
  • jsp
  • nodejs express
  • 이클립스 mysql 연동
카운터
전체 방문자
오늘
어제
Skin by M1REACT. Designed by M1STORY.TISTORY.COM. Valid XHTML 1.0 and CSS 3. Copyright ⓒ Riucc's Storage. All rights reserved.

티스토리툴바