티스토리 뷰



  Express에서 역시 사용자가 원하는 요청 객체와 응답 객체를 구현할 수 있다. Express의 콜백 함수는 라우팅 기능을 통해 구현되는데, 이번 시간에는 Express 라우팅 기능을 중심으로 하는 콜백 함수에 대해 알아보자.


1. 요청 객체

  Express의 라우팅 기능을 활용해서 url parsing 없이 객체를 선언할 수 있다는 것을 알았다. 이번에는 Express get 함수에 들어가는 콜백 함수에 대해 알아보자. 콜백 함수에는 총 3가지의 인자가 들어간다


  • 요청 객체
  • 응답 객체
  • NEXT 객체


  이 중 NEXT 객체는 선택 사항이다. 


  요청 객체에는 아래 3가지 변수가 담긴다


  • params
  • query
  • body


1
2
3
4
5
6
app.get('/users/:id'function(request, response) { 
  let params = request.params;
  let querys = request.query;
  console.log(params, querys);
  res.send('hello world');
});
cs


  위와 같은 요청 객체를 선언했다고 하자. GET 요청을 다음과 같이 보낸다.


http://localhost:3000/user/1


  그 다음 결과를 살펴보면 다음과 같이 나타난다.


  { id: 1 } { }



  GET 요청과 마찬가지로 POST 요청 역시 같은 방식으로 구현 가능하다. POST 요청의 경우 body 변수가 담긴다.


1
2
3
4
5
6
7
8
9
10
11
12
app.get('/users/:id'function(request, response) { 
  let params = request.params;
  let querys = request.query;
  console.log(params, querys);
  res.send('hello world');
});
 
app.post('/'function(request, response) { 
  let body = request.body;
  console.log(body);
  res.send('/ POST 요청);
});
cs


  이와 같이 요청 객체를 작성하고 POST 요청을 실행하면 값이 제대로 나오자 않을 것이다. Express에서 Body를 사용하기 위해서는 body-parser라는 미들웨어를 사용해야한다. body-parser 미들웨어는 아래의 코드로 등록 할 수 있다.



1
2
const bodyParser = require('body=parser');
app.use(bodyParser())
cs





  전체 요청 객체의 코드는 다음과 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var express = require('express')
var app = express()
//const http = require('http')
const bodyParser = require('body-parser');
app.use(bodyParser())
 
app.get('/users/:id'function(request, response) { 
  let params = request.params;
  let querys = request.query;
  console.log(params, querys);
  response.send('hello world');
});
 
app.post('/'function(request, response) { 
  let body = request.body;
  console.log(body);
  response.send('/ POST 요청');
});
 
app.listen(3000function() {
  console.log('Example app listening on port 3000!')
});
 
cs


  Postman을 통해 body를 정의하고 요청을 내리면 다음과 같은 결과가 나온다.




  console 결과는 다음과 같다


{ a : 1 }

2. 응답 객체

  Express의 응답 객체는 라우터 콜백 함수의 두번째 인자로 등록된다. 응답 객체에서 사용되는 함수는 다음과 같다.


  • download() : 파일 다운로드
  • json() : JSON 형태의 데이터 응답
  • redirect() : 경로 이동
  • render() : pug, ejs 템플릿 엔진 HTML로 렌더링
  • send() : 전송 데이터에 대한 형식 변경
  • status() : 상태 코드 변경


  원하는 응답 형태를 선택해 다음과 같이 구현할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var express = require('express')
var app = express()
const http = require('http')
 
app.get('/send'function(request, response) { 
  response.send('hello world');
});
 
app.get('/download'function(request, response) { 
  response.download('hello world');
});
 
app.get('/redirect'function(request, response) { 
  response.redirect('hello world');
});
 
app.get('/json'function(request, response) { 
  response.json('hello world');
});
 
http.createServer(app).listen(3000, () => {
  console.log('server on: 3000 Port')
 
})
cs



'Skill > Programming - Server & Client' 카테고리의 다른 글

22.[Node.js] Express Generator  (0) 2020.04.22
21.[Node.js] 미들웨어  (1) 2020.04.13
19.[Node.js] Express  (0) 2020.03.29
18.[Node.js] GET, POST 요청  (0) 2020.03.22
17.[Node.js] 서버 요청 개체, 응답 개체  (0) 2020.03.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함