일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- https://velog.io/@velopert/create-typescript-react-component
- 게시판
- toString
- http://jeonghwan-kim.github.io/dev/2019/06/25/react-ts.html
- object
- 출처 : https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
- 출처 : https://webdir.tistory.com/506
- Today
- Total
Back Ground
NodeJS - Express의 요청 객체와 응답 객체 [ES5] 본문
익스프레스의 요청 객체와 응답 객체에는 메소드가 더 추가되어 있다.
send([body]) |
클라이언트에 응답 데이터를 보냅니다. 전달할 수 있는 데이터는 HTML 문자열, Buffer 객체, JSON 객체, JSON 배열입니다. |
status(code) |
HTTP 상태 코드를 반환합니다. 상태 코드는 end( )나 send( ) 같은 전송 메소드를 추가로 호출해야 전송할 수 있습니다. |
sendStatus(statusCode) |
HTTP 상태 코드를 반환합니다. 상태 코드는 상태 메시지와 함께 전송됩니다 |
redirect([status,] path) |
웹 페이지 경로를 강제로 이동시킵니다. |
render(view [, locals][, callback] |
뷰 엔진을 사용해 문서를 만든 후 전송합니다. |
.send()
buffer 객체 Json객체, JSON배열을 보낼때 사용
send랑 write를 함께 사용할 수 없다.
만약
write를 사용 후 send()를 만나면 에러가 발생한다.
그리고 send는 단 한번만 사용한다.
send(); 후 response를 빠져나온다. 종료
예제)
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 32 33 34 35 | var http = require('http'), express = require('express'); var app = express(); app.use(function(req,res,next){ console.log("미들웨어 1"); res.aaa = 1234; let json = { pname: '장동건', age : 30, tel : '010-1234-5678' }; res.send(json); // buffer 객체 Json객체, JSON배열을 보낸다. //send랑 write는 함께 쓰면 안됨. //send를 보내면 단방향 끝 return 해버린다. 밑에 wrtie는 안나옴 res.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}); res.write('<p>추석이다</p> '+res.aaa+'<br>'); next(); // req res 가 다음use 매개변수로 들어간다. bean처럼 res req를 다 쓰인다. }); //마지막 미들웨어 app.use(function(req,res,next){ console.log("미들웨어 2"); res.write('<p>재밌겠다</p>'+res.aaa); res.end('종료다'); }); http.createServer(app).listen(3000,function(){ console.log('서버 기동'); }); | cs |
이렇게 했다면 wirte는 실행되지않는다.
send는 한번만 실행 후 빠져나오기 때문에
sned를 또 실행 한다고 해도 가장 첫번째 send만 나오게 된다.
예제)
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 32 33 34 35 36 37 38 | var http = require('http'), express = require('express'); var app = express(); app.use(function(req,res,next){ console.log("미들웨어 1"); res.aaa = 1234; res.send( json = {// 다른이름 JSON RPC - Ajax 통신 할때 사용하기 좋음. pname: '장동건', //send() 한번 데이터 전송 age : 30, tel : '010-1234-5678' }); //send()는 실행되지않음 한번실행 send한 순간 res 빠져나온다 2차 작업 안함 res.send( json = { pname: '정우성', age : 30, tel : '010-1234-5678' }); res.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}); res.write('<p>추석이다</p> '+res.aaa+'<br>'); next(); }); //마지막 미들웨어 app.use(function(req,res,next){ console.log("미들웨어 2"); res.write('<p>재밌겠다</p>'+res.aaa); res.end('종료다'); }); http.createServer(app).listen(3000,function(){ console.log('서버 기동'); }); | cs |
한번만 실행되기 때문에
send를 쓰기 좋은건 Ajax 통신에서 Json으로 뽑아 낼때 쓰기 좋다.
sendStatus(code)
Http 상태 코드를 반환 한다.
예제)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var http = require('http'), express = require('express'); var app = express(); app.use(function(req,res,next){ console.log("미들웨어 1"); res.sendStatus(200); }); http.createServer(app).listen(3000,function(){ console.log('서버 기동'); }); | cs |
상태코드를 따로 헤더로 보내고
바디에 200의 (Http status code) success를 전송한다.
만약
res.sendStatus(403);
이라면 그 상태코드의 대한 설명이 나온다.
redirect([status,] path)
redirect( 200,/path/address ) |
[Http상태 코드 표시 ] ,[경로 ] |
웹 페이지를 강제적으로 이동시킨다. ( URL 경로 또는 Path경로를 변경하여 처리 하기도한다. )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var http = require('http'), express = require('express'); var app = express(); app.use(function(req,res,next){ console.log("미들웨어 1"); res.redirect('https://www.nate.com'); //가장 첫번째 명령만 실행 res.redirect('https://www.naver.com'); }); http.createServer(app).listen(3000,function(){ console.log('서버 기동'); }); | cs |
redirect를 사용할 시 가장 첫번째 redirect()함수를 실행하면
그 밑 동작은 이뤄지지 않는다. 궁금하면
console.log()를 찍어서 나오는지 확인 해보자.
'Javascript > Node.js' 카테고리의 다른 글
NodeJS - Static [ES5] (0) | 2018.10.07 |
---|---|
NodeJS - Request [ES5] (0) | 2018.10.04 |
NodeJS - Express모듈 서버 만들기 [ES5] (0) | 2018.09.18 |
NodeJS - 클라이언트로 응답을 보내는 방식 [ES5] (0) | 2018.09.18 |
NodeJS - http 모듈로 요청받은 파일 내용을 읽고 응답하기 [ES5] (0) | 2018.09.18 |