[Node.js] Postman: GET, POST

깡뉴·2025년 2월 17일
post-thumbnail

GET까지는 어찌저찌 잘 해결해왔다.


📮 Postman 다운로드

그러나 POST 테스트를 위해서는 특별한 앱이 필요하다.
이름하여 Postman!!!🚚

🔗 다운로드 링크: https://www.postman.com/downloads/


파일을 불러와 여러가지 메소드 테스트를 해보려고 한다.

오늘은 이 중에서 POST와 GET을 테스트 할 것이다.

간단히 만든 파일을 조회(GET)하기

기존 youtuber-demo.js로 테스트하기

모두 다 문제없이 조회 가능하다.


- 미들웨어 모듈을 사용해 POST 확인하기

브라우저로만 실행 시 POST 출력 확인이 불가하다.
그러나 Postman의 Body에서는 확인이 가능하다.
(🌟 POST 시 Postman을 써야하는 이유)

app.use(express.json()) (미들웨어 모듈 사용을 뜻함)

한편 raw, json 선택 후, request에 다음과 같이 보내면

VS CODE 콘솔창에서 메세지 결과값을 받아볼 수 있다.

- 참고: 키 값을 제외한 내용만 콘솔창에 받고 싶은 경우

간단하다.
req.body에서 req.body.message
경로를 세분화하면 된다.

이제 진짜 Body에 뿌려보자


🍋 youtuber-demo.js 업그레이드

기존 버전의 경우, 입력했던 유튜버 3명의 정보만 반환 가능하다.
즉, 새로운 유튜버를 등록할 수 없다.

따라서 POST를 사용해 새로운 유튜버를 추가해보도록 하자.

🍎 RestAPI 설계

: 유튜브 '등록' === POST /youtuber

  • req: body
    ⇐ channelTitle,
    sub = 0,
    videoNum = 0 (→ 신규 유튜버 정보 전달)
  • res: ${channelTitle} 님, 가입해주셔서 감사합니다!

🍎 map 설계

: map(==db)에 등록한 내용을 저장하고 싶다.

이때, db에 등록하기 위해서는 set.(key 값, 객체(담을 내용))이 필요하다.

실제로 저장을 해보자.

완료!

설계한 res 부분을 참고해 message를 만들어 고도화 해보자.

🧃 최종 코드 및 결과

: 아이디값을 ++해서 입력되는 데이터쌍에 자동으로 id값이 부여되게 만들었다.

 const express = require("express");
const app = express();
app.listen(3000);

let youTuberA = {
  channelTitle: "유진캉",
  subscribers: "50만명",
  videoNum: "100개",
};
let youTuberB = {
  channelTitle: "앨리스 인 원더랜드",
  subscribers: "100만명",
  videoNum: "377개",
};
let youTuberC = {
  channelTitle: "인어공주",
  subscribers: "1000만명",
  videoNum: "1000개",
};

let db = new Map();
var id = 1;

db.set(id++, youTuberA);
db.set(id++, youTuberB);
db.set(id++, youTuberC);

app.get("/youtuber/:id", function (req, res) {
  let { id } = req.params;
  id = parseInt(id);
  const youtuber = db.get(id);

  if (youtuber === undefined) {
    res.json({
      message: "유튜버 정보를 찾을 수 없습니다.",
    });
  } else {
    res.json(youtuber);
  }
});

app.use(express.json());
app.post("/youtuber", (req, res) => {
  db.set(id++, req.body);
  res.json({
    message: `${db.get(id-1).channelTitle} 님, 가입해주셔서 감사합니다.`,
  });
});

✨ 결과는 다음과 같다!


오늘은 여기까지!

이것저것 밀린 할 일이 많아서
하루종일 정신없이 바빴다...

다행히 놓친 부분없이 잘 이해한 것 같다.

앞으로 배울 전체 조회가 너무 궁금해서
자기 전에 강의 하나만 더 듣고 자려고 한다..ㅎㅎ

암튼 이만 말을 줄여야겠다...

profile
🐰🍎

0개의 댓글