사고쳤어요
[Node.js] 유튜브 서비스 - 채널 생성 서비스(DB 연결) 본문
https://makeaccident.tistory.com/123
[Node.js] 유튜브 서비스 - 채널 생성, 채널 조회(POST, GET)
채널 생성const express = require("express");const app = express();app.listen(3000);app.use(express.json());let channelDb = new Map();var id = 1;app .route("/channels") // 채널 전체 조회 .get((req, res) => {}) // 채널 생성 .post((req, res) =>
makeaccident.tistory.com
채널 생성 서비스를 데이터베이스에 연결하여 구현해보자.
// 채널 생성
.post((req, res) => {
let channelTitle = channel.channelTitle;
let userId = channel.userId;
if (!userId) {
res.status(400).json({
message: "로그인이 필요합니다",
});
} else if (!channelTitle) {
res.status(400).json({
message: "channelTitle이 포함되어있지 않습니다.",
});
} else {
let sql = `INSERT INTO channels (name, user_id)
VALUES (?, ?)`;
conn.query(sql, [channelTitle, userId], (err, rows, fields) => {
if (err) {
console.log(err);
return;
} else {
res.status(201).json({
message: `${name}님 환영합니다`,
});
}
});
}
});
위와 같이 정상적인 channelTitle과 userId를 입력했을 때 아무 문제 없이 잘 작동하는 것을 볼 수 있다.
그런데 user_id에 이상한 값을 넣고 실행한다면 어떻게 될까?
포스트맨에서는 무한 로딩이 발생하고, 콘솔에서도 에러가 발생한다.
이를 해결하기 위해 errno가 1452일 때의 예외처리를 진행해주자.
conn.query(sql, [channelTitle, userId], (err, rows, fields) => {
if (err.errno == 1452) {
res.status(400).json({
message: "존재하지 않는 user id입니다.",
});
} else if (err) {
console.log(err);
return;
} else {
res.status(201).json({
message: `${channelTitle}님 환영합니다`,
});
}
});
}
예외처리가 잘 된 것을 볼 수 있다.
'웹 풀스택' 카테고리의 다른 글
[Node.js] 유튜브 서비스 - 채널 수정 서비스(DB 연결) (0) | 2025.02.27 |
---|---|
[Node.js] 유효성 검사: express-validatior (0) | 2025.02.27 |
[Node.js] 유튜브 서비스 - 채널 조회 서비스(DB 연결) (0) | 2025.02.26 |
[Node.js] 유튜브 서비스 - 로그인 서비스(DB 연결) (0) | 2025.02.26 |
[Node.js] 유튜브 서비스 - 회원 탈퇴 서비스(DB 연결) (0) | 2025.02.26 |