Back Ground

NodeJS - Request [ES5] 본문

Javascript/Node.js

NodeJS - Request [ES5]

Back 2018. 10. 4. 22:41


Request (요청)


웹으로 부터 요청 받은 Request를 이용한다. 


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
var http = require('http'), express = require('express');
 
var app = express();
 
app.use('test',function(req,res,next){
    console.log("미들웨어 1");  
    
    var userAgent = req.header('User-Agent');
    
   
    var pName = req.query.name
    var age   = req.query.age; 
    
    var url = 'nomal';
    if(age<15) url = 'kids';
    
    
    res.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}); 
    res.write('userAgent : '+userAgent + '<br>');
    res.write('pName : '+pName + '<br>');
    res.write('age : '+age +','+url+ '<br>');
    
    let pram = req.query;
    for(k in pram){
        res.write(k +' : '+pram[k]+'<br>');
    }
    
    res.end();
 
});
 
 
http.createServer(app).listen(3000,function(){
   console.log('서버 기동'); 
});
 
 
cs



.use('/',function(req,res,next){});'

[Mapping 경로 , 함수 (요청,응답,다음 use)] 

use의 매개변수중 첫번째 인자로 

RequestMapping같이 path를 지정해줄 수 있다. 


ex)

1
.use('/test',function(){});
cs
 URL :  localhost:3000/test





.header는 request에서 Header를 읽는 방법

1
var userAgent = req.header('User-Agent');
cs

반응형때 Agent 정보를 확인하여 처리한다. ( 브라우저 체크 )



queryReqest Header를 읽는다.(즉, get과post 둘다 받을 수있다)

1
2
 var pName = req.query.name
 var age   = req.query.age;
cs


http://192.168.10.25:3000/?name=aaaa - [ 파라메터를 보내면 aaa가 나온다. ]






Post 방식 중 Request Body에 보내질때 


 

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')
 , static = require('serve-static')
 , bodyParser = require('body-parser')
 , path = require('path');
 
var app = express();
 
app.use('/public',static(path.join(__dirname, 'public')));
 

app.use(bodyParser.urlencoded({extended: false}));
 
// /public가 패스를 못 찾으면 이쪽으로간다.
app.use(function(req,res,next){
    console.log("미들웨어 1");  
    
    //post를 먼저 확인 후 get에서 찾는다.
    var pId = req.body.id || req.query.id;
    var pPw = req.body.pw || req.query.pw;
 
    res.writeHead('200',{"Content-Type":"text/html; charset=utf-8"}); 
    res.write('post 이다 : '+ '<br>');
    res.write('ID : '+pId+ '<br>');
    res.write('PW : '+pPw+ '<br>');
    res.write('<a href="public/login.html">로그인</a>');
    res.end();
});
 
 
http.createServer(app).listen(3000,function(){
   console.log('서버 기동'); 
});
 
 
cs


bodyParser = require('body-parser')

- Requst Body를 사용하기 위해 body-parser를 이용하여 파싱 해야 한다. 



app.use(bodyParser.urlencoded({extended: false}));

- body-parser를 사용하겠다는 모듈







Request.body.key를 가져오면 되는데

1
2
3
4
use(function(req,res,next){
 
var pId = req.body.id || req.query.id;
var pPw = req.body.pw || req.query.pw;
cs

이렇게 만약 body에 없을수 있다는걸 방지하기 위해

우선 body에서 찾은 후 header에서 찾아오기 만든다.





Comments