기록해! 정리해!

Postman 사용하기 본문

자바스크립트

Postman 사용하기

zsuling 2022. 9. 29. 10:51

node_sample.zip
0.02MB

const  http = require('http');
const  express = require('express');

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

const  app = express();

app.use(express.logger());

// GET 요청 이외의 요청에서 요청 매개변수를 
// 추출하려면 BodyParser 미들웨어가 필요하다.  
app.use(express.bodyParser());

// 정적 홈페이지 
app.use(express.static('public'));
app.use(app.router);

 
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:'존재하지 않는 데이터입니다.!'});
        }
});

// 수정하기  
app.put('/products/:id', function(request, response){

  console.log('===> app.put');

  // 동적 라우트 요청 매개변수 ( params 받기 )
  var id = Number(request.params.id);

  var name = request.query.name;   // 매개변수 query 로 받기 
  var price = request.query.price;

  console.log('===>  번호:' + id);
  console.log('===>  이름:' + name) ;
  console.log('===>  가격:' + 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:'존재하지 않는 데이터 입니다.'});
  }
  
});

// 데이타 추가하기 
app.post('/products', function(request, response){

  console.log('===> app.post');

  // var name = request.param('name')
  // var price = request.param('price')

  
  var name = request.body.name;
  var price = request.body.price;

   console.log('name:' + name);
   console.log('price:' + price);

  var item = { name: name,  price: price };
    items.push(item);  // 데이터를 추가합니다. 
    response.send({
        message: '데이터를 추가했습니다.' , data: item
    });
});


app.get('/products/:id', function(request, response){

  var id = Number(request.params.id);
  // var id = Number(request.param('id'));

  if (isNaN(id)) {
      response.send({ error:'숫자를 입력하세요!!'});
   } else if (items[id]) {
      response.send(items[id]);
   } else {
       response.send({ error:'존재하지 않는 데이터 입니다.!!'});  
   }
});

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


// 동적 라우팅 사용하기 
app.all('/parameter/:id', function(request, response){
 
  var id = request.params.id;
  // var id=request.param('id');
 
  response.send('<h1>' + id +  '</h1>' ); 
 });

// get - method 방법만 받을수 있다. 
app.get('/parameter', function(request, response){

  var name = request.query.name;
  var price = request.query.region;

  // var name=request.param('name');
  // var region=request.param('region');

   response.send('<h1>' + name + ' : ' + region + '</h1>' ); 
 });


app.all('/data.html', (request, response) => {
  var output="";
  items.forEach( (item)=>{
     output += item.name + ":" + item.price +"<br>" ;
  });
   
  response.send(output);

});

app.all('/data.json', (request, response) =>{
  response.send(items);
});

app.all('/data.xml', (request, response) => {
  var output="";
  output += '<?xml version="1.0" encoding="UTF-8" ?>';
  output += '<products>' ;
  items.forEach( (item) =>{
    output += '<product>' ;
    output += '<name>' + item.name + '</name>' ;
    output += '<price>' + item.price + '</price>' ;
    output += '</product>' ;
  });
  output += '</products>' ;
  response.type('text/xml');
  response.send(output);
});


app.use( ( request,  response ) => {
  response.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
  response.end('<div align=center><h1> 서버 접근을 환영합니다. </h1></div');
});

http.createServer(app).listen(52273, () => {
    console.log ('Server  Running  at  http://127.0.0.1:52273');
})

[ index.html ]

 

<html>
<head> 
<title>node - index.html </title>

</head>
<body>
 <div align="center">
 <br><br><br> 
    <h1>  기본 홈페이지 위치 </h1>
    <img  src="./img/choi.jpg"  width="200" height="200" />

 <br>

 <a href="data.json"> 0.전체 데이터 확인 </a> <br><br>

 <a href="main1.html"> 1.get 방법전체(selectAll) </a> <br><br>

 <a href="main2.html"> 2.get 방법선택(getSelect) </a> <br><br>

 <a href="main3.html"> 3.post 방법선택(insert) </a> <br><br>

</div>
</body>
</html>

 

[ 전체 데이터 보기 ]


<html>
<head> 
<title>node - index.html </title>

</head>
<body>

 <div align="center">
   
   <h3> /products 전송 </h3>   
   <form  action="/products"  method="get">

   <input  type="submit"  value="Get 전송" >

  </form>
 </div>
</body>
</html>​

[ 동적 라우트 요청 매개변수 ]

<html>
<head> 
<title>node - index.html </title>

</head>
<body>

 <div align="center">
   
  <h3> /products/:id 전송 </h3>   

  <a href="/products/0"> 0번 선택</a> <br><br>
  <a href="/products/1"> 1번 선택</a> <br><br>
  <a href="/products/2"> 2번 선택</a> <br><br>
  <a href="/products/3"> 3번 선택</a> <br><br>

  <a href="/products/A"> A번 선택</a> <br><br>
  
 </div>
</body>
</html>

[ 저장하기 ]

<html>
<head> 
<title>node - index.html </title>

</head>
<body>

 <div align="center">
   
   <h3> /products 전송 (POST) </h3>   
   <form  action="/products"  method="post">
   상품명 : <input  type="text"  name="name" >  <br><br>
   가격 :  <input  type="text"  name="price" >  <br><br>
   <input  type="submit"  value="저장하기" >

  </form>
 </div>
</body>
</html>

'자바스크립트' 카테고리의 다른 글

응답과 응답형식 (html, json, xml )  (0) 2022.09.29
Node.js -ppt 실습 (1)  (0) 2022.09.28
Node.js 다운로드 + 테스트하기  (0) 2022.09.28
Comments