Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
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
Archives
Today
Total
관리 메뉴

사고쳤어요

[Node.js] 유튜버 조회 서비스 - 새로운 유튜버 추가(POST) 본문

웹 풀스택

[Node.js] 유튜버 조회 서비스 - 새로운 유튜버 추가(POST)

kevinmj12 2025. 2. 17. 16:37

새로운 유튜버 추가

지난 포스트에서 구현했던 유튜버 조회 서비스에서는 기존에 있었던 유튜버들만을 조회할 수 있었다.

이번에는 여기에 새로운 기능을 추가하여 기존에 없던 유튜버를 추가해보도록 하자.

 

const express = require("express");
const app = express();

let youtuber1 = {
  channelTitle: "침착맨",
  sub: "274만명",
  videoNum: "7.4천개",
};

let youtuber2 = {
  channelTitle: "테오",
  sub: "124만명",
  videoNum: "1.2천개",
};

let youtuber3 = {
  channelTitle: "뜬뜬",
  sub: "253만명",
  videoNum: "292개",
};

let youtuberDb = new Map();

let id = 1;
youtuberDb.set(id++, youtuber1);
youtuberDb.set(id++, youtuber2);
youtuberDb.set(id++, youtuber3);

app.use(express.json());
app.post("/youtubers", function (req, res) {
  youtuberDb.set(id, req.body);

  res.status(201).json({
    message: youtuberDb.get(id++).channelTitle + "님이 추가되었습니다.",
  });
});

app.listen(3000);

app.post("/youtuber")를 통해 유튜버에 대한 정보를 입력받고 youtuberDb에 추가하도록 설정을 하였다.

이 때 youtuberDb의 key를 기존에는 1, 2, 3 과 같이 추가하였었는데,

id라는 새로운 변수를 설정하여 자동으로 증가되도록 하며 유튜버를 추가할 수 있도록 하였다.

GET 명령을 통해 테스트를 해보면 1번 id는 침착맨이 잘 나오고, 4번 id는 모르는 유튜버라 나오는 모습을 볼 수 있다.

이제 POST 명령을 통해 새로운 유튜버를 추가해보자.

Body의 raw에 양식에 맞게 채널 "지무비"에 대한 정보를 등록하였다.

이제 다시 4번 id의 유튜버를 조회해보자.

4번 id에 채널 지무비가 잘 등록되어 GET 요청이 성공적으로 이루어진 것을 확인할 수 있다!

 

예외 처리

그런데 만약 POST 명령이 이루어질 때 body에 어떠한 정보도 없이 보내진다면 어떻게 될까?

기대하지 않았던 undefined가 추가되는 모습을 확인할 수 있다...

이는 잘못된 것으로 예외 처리를 진행해주어야 한다.

 

app.use(express.json());
app.post("/youtubers", function (req, res) {
  const channelTitle = req.body.channelTitle;
  if (channelTitle) {
    youtuberDb.set(id, req.body);

    res.status(201).json({
      message: youtuberDb.get(id++).channelTitle + "님이 추가되었습니다.",
    });
  } else {
    res.status(400).json({
      message: "유튜버 정보를 정확히 입력해주세요",
    });
  }
});

channelTitle을 받아와 이가 존재할 때와 존재하지 않을 때로 분류하였다.

존재하지 않을 때는 status 400과 함께 message를 전달하도록 하였다.

 

Postman에서도 Status code 400과 함께 message가 잘 출력되는 모습이다!