반응형
router 미들웨어 (길잡이를 해주기 때문에 이름이 router입니다.)
- 요청 메서드와 url에 따른 분기
- 개별 함수를 통한 1:1 작업 분화
- app.use()라는 것을 app.get()처럼 표현.. ?
- router.get()이 많이 나온다구...?
- use에서 if 문으로 분기를 나눠서 처리하는게 너무 많은거야.. 그래서 router로 만들어보자. use함수 제조기를 router라고 만들자.
- 필요에 의해 새로운 router 생성
- 별도의 context 생성의 의미
var router = new Router();
router.get('/plus', function() {});
router.get('/minus', function() {});
app.use(router);
있었는데, 살아지고
Express 4.x부터 지금은 app.get()에 암묵적으로 기본 router 미들웨어에 추가되었음.
app.get('url', function(req, res){}); post, put, delete, all
router를 등록하면 1차적으로 calendar에 관련된 이벤트를 처리하고 그 이벤트 안에서도 2차적인 events를 처리하는 함수를 정의.
하위 context를 만들어낼때 사용한다. calendar의 하위 context.
이렇게 하면 /calendar/events/, calendar/normal 의 이벤트를 처리할 수 있다.
예제 )
var http = require('http');var express = require('express');var app = express();var router = express.Router();app.get('/', function(req, res) {res.send('<h1>index page</h1>');});router.get('/events', function(req, res){console.log('events');res.send('<h1>events</h1>');});router.get('/normal', function(req, res){console.log('normal');res.send('<h1>normal</h1>');});app.use('/calendar', router);http.createServer(app).listen(8080, function() {console.log('running on 8080.');});
Parameter 전달
- GET 방식
- request.param('key') : value
- request.query.key : value
※ POST 방식과 동일한 코드를 하기 위해서는 request.param('key')가 더 올바르다.(?)
예제 )
app.get('/', function(req, res) {
console.log(req.query);
console.log(req.param);
res.send('<p>id:' + req.query.id + "</p><p>"
+ req.param('pwd') +"</p>");
});
- POST 방식
- bodyParaser 미들웨어 추가 설치
- npm install body-parser
예제 )
app.use(bodyParser.urlencoded({extended: false}));
app.post('/', function(req, res) {
console.log(req.query);
console.log(req.param); // function
res.send('<h1>POST</h1><p>id:' + req.param('id') + "</p><p>"
+ req.param('pwd') +"</p>");
});
※ GET과 POST의 함수 Body가 동일한 경우에는 app.all('url', function(){}); 으로 해도 상관 없습니다.
반응형
'Programming > 웹프로그래밍' 카테고리의 다른 글
[NodeJs] Express 프로젝트 시작하기 (MVC Pattern / ejs) (0) | 2016.03.17 |
---|---|
[NodeJs] 외부모듈활용 - Express를 활용해 간단한 Framework 만들기. (그 외 유용한 모듈) (3/3) (0) | 2016.03.17 |
[NodeJs] 외부모듈활용 - Express를 활용해 간단한 Framework 만들기. (1/3) (0) | 2016.03.17 |
[NodeJs] 외부모듈활용 - Aync (0) | 2016.03.17 |
[NodeJs] 외부모듈사용하기 - EJS 모듈 (0) | 2016.03.17 |