node.js 수업

node.js-2 클라이언트 요청처리(put(), del())

줄라이퍼스트 2020. 2. 24. 10:35

※  1. 요청 형식에 따른 웹 서비스 - put/products:id형태

 

// 모듈 추출
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');

// 웹 서버 생성
var app = express();


// 변수를 선언합니다.

var items=[{
    name: '우유',
    price: '2000'
},{
    name:'홍차',
    price: '5000'
},{
    name:'커피',
    price:'5000'
}];

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

app.get('/products', function(request,response){
    response.send(items);
});

app.get('/products/:id', function(request,response){
   // 변수를 선언합니다.
   var id = Number(request.params.id);
   if(isNaN(id)){
       // 오류: 잘못된 경로
       response.send({
           error: '숫자를 입력하세요!'
       });
   }else if(items[id]){
       // 정상
       response.send(items[id]);
   }else{
       // 오류 : 요소가 없을 경우
       response.send({
           error : '존재하지 않는 데이터입니다.!'
       });
   }
});

app.post('/products', function(request,response){
    // 변수를 선언합니다.
    var name = request.body.name;
    var price = request.body.price;
    
    var item ={
        name: name,
        price: price
    };
    // 데이터를 추가합니다.
    items.push(item);

    // 응답합니다.
    response.send({
        message: '데이터를 추가했습니다.',
        data : item
    });
 });
 
 app.put('/products/:id', function (request, response) {
    // 변수를 선언합니다.
    var id = Number(request.params.id);
    var name = request.body.name;
    var price = request.body.price;
    if (items[id]) {
        // 데이터를 수정합니다.
        if (name) { items[id].name = name; }
        if (price) { items[id].price = price; }
        // 응답합니다.
        response.send({
            message: '데이터를 수정했습니다.',
            data: items[id]
        });
    } else {
        // 오류: 요소가 없을 경우
        response.send({
            error: '존재하지 않는 데이터입니다!'
        });
    }
});


// 웹 서버 실행
http.createServer(app).listen(8001,function(){
    console.log('Server running at http://127.0.0.1:8001');
});

 

 

※  1. 실행화면- put/products:id형태

1. 실행화면 - get을 이용

 

 

1-1. 실행화면 - products/0번째 를 보면 우유와 2000원을 볼 수 있다 

 

 

※  PUT() 메소드를 이용하여 변경

 

1-2. 실행화면 - put을이용하여 0번째를 스무디와 금액으로 변경 하였다.

 

 

1-3. 실행화면 - 0번째 id값( items[0] )을 스무디로 변경한 모습

 

 

※  2. 요청 형식에 따른 웹 서비스(삭제) - del()/products:id형태

app.put() 다음에 app.del 이부분을 새로 추가하기!

 

app.del('/products/:id',function(request,response){
    // 변수를 선언합니다.
    var id = Number(request.params.id);
    if(isNaN(id)){
        // 오류 : 잘못된 경로
        response.send({
            error :'숫자를 입력하세요!'
        });
    }else if(items[id]){
        // 정상 : 데이터 삭제
        items.splice(id,1);
        response.send({
            message : '데이터를 삭제했습니다.'
        });
    }else{
        // 오류 : 요소가 없을 경우
        response.send({
            error :  '존재하지 않는 데이터 입니다.!'
        });
    }

});

 

 

 

※  2. 실행화면

 

 

1. 실행화면 items[1] 홍차가 삭제됨

 

 

 

1-1. 실행화면 - 홍차가 삭제된 것을 볼 수 있다.