Back Ground

NodeJS - RestFul [ES5] 본문

Javascript/Node.js

NodeJS - RestFul [ES5]

Back 2018. 11. 11. 20:36


RestFul 이란 


REST는 Representational State Transfer라는 용어의 약자로서 웹의 장점을 최대한 활용할 수 있는 아키텍처
최근의 서버 프로그램은 다양한 브라우저와 안드로이폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야 한다.

REST 아키텍처는 Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.





예제 )

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var http = require('http'
 , express = require('express')
 , static = require('serve-static')
 , bodyParser = require('body-parser')
 , path = require('path');
 
var app = express();
 
//body-parser를 사용하겠다는 모듈
app.use(bodyParser.urlencoded({extended: false}));
 
app.use('/public',static(path.join(__dirname, 'public')));
 
var router = express.Router();
 
 
//form에 action="/rrr/login"으로 Mapping
router.route('/rrr/login/:name').post(function(req,res){ 
    console.log("미들웨어 1");  
 
    //post를 먼저 확인 후 get에서 찾는다.
    var pName = req.params.name;
    console.log(pName);
    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('NAME : '+pName+ '<br>');
    res.write('ID : '+pId+ '<br>');
    res.write('PW : '+pPw+ '<br>');
    res.write('<a href="public/login2.html">로그인</a>');
    
    res.end();
});
 
router.route('/').get(function(req,res){
    console.log("미들웨어 1");  
 
    res.writeHead('200',{"Content-Type":"text/html; charset=utf-8"}); 
    res.write('post 이다 : '+ '<br>');
   
    res.write('<a href="public/login3.html">로그인</a>');
    
    res.end();
});
 
 
app.use('/',router); //index나 에러 메세지 보낼때 기본 패스 처리 
 
//get post 둘다 이곳에서 처리하게 한다.
app.all('*',function(req,res){
    res.status(400).send('페이지를 찾을수 없습니다.');
});
//put/delete는 쓰지않는다. (해킹할때 공격대상이 될수있다.)
 
 
http.createServer(app).listen(3000,function(){
   console.log('서버 기동'); 
});
 
 
cs




여기서 중요한건 

1
outer.route('/rrr/login/:name')
cs


restful 방식 :name 는  req,params.name <- 변수명 으로 들어가게된다.  <form action="/rrr/login/test" 의 test 라는 값을 갖게 된다.


즉, localhost:3000/rrr/login/a 라고하면 

localhost:3000/rrr/login?name=a 와 같이 a라는 값의 name 파라메터 키로 들어가게 된다. 


'Javascript > Node.js' 카테고리의 다른 글

Callback Hell 이란 [ 해결방법 ]  (2) 2019.01.23
NodeJS - ES2015+  (0) 2019.01.18
NodeJS - Router 사용해 요청 라우팅하기 [ES5]  (0) 2018.10.07
NodeJS - Static [ES5]  (0) 2018.10.07
NodeJS - Request [ES5]  (0) 2018.10.04
Comments