사고쳤어요
[Node.js] 유튜버 조회 서비스 - 새로운 유튜버 추가(POST) 본문
새로운 유튜버 추가
지난 포스트에서 구현했던 유튜버 조회 서비스에서는 기존에 있었던 유튜버들만을 조회할 수 있었다.
이번에는 여기에 새로운 기능을 추가하여 기존에 없던 유튜버를 추가해보도록 하자.
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가 잘 출력되는 모습이다!
'웹 풀스택' 카테고리의 다른 글
| [Node.js] 유튜버 조회 서비스 - 유튜버 삭제(DELETE) (1) | 2025.02.18 |
|---|---|
| [Node.js] 유튜버 조회 서비스 - 전체 유튜버 조회(forEach) (0) | 2025.02.18 |
| Postman으로 GET, POST 테스트해보기 (0) | 2025.02.17 |
| Express 구조와 Express application generator (0) | 2025.02.14 |
| [Node.js] 유튜버 조회 서비스 - params에 맞는 json 전달하기 (0) | 2025.02.13 |