리팩토링 정리
1. 불필요한 코드 (Map 객체 잔재) + console.log 삭제, if 중괄호 통일
2. 코드로 설명이 안되는 부분에 주석 작성 그외에는 주석 삭제
3. 문자열의 경우 값을 빼서 문자열 자체로 넣기보다 변수로 지정해서 변수를 입력하기(ex. sql)
const express = require("express");
const router = express.Router();
const conn = require("../mariadb");
router.post("/login", async (req, res) => {
const { email, password } = req.body;
const select_sql = "select * from users where email = ?;"
const [[user]] = await conn.query(select_sql, [
email
]);
if (!user || user.password !== password) {
res.status(404).json({
message: "이메일 또는 비밀번호가 틀렸습니다."
});
return;
}
res.status(200).json({
message: `${user.name}님, 로그인이 완료되었습니다.`
});
});
router.post("/join", async (req, res) => {
const { email, name, password, tel } = req.body;
if (!email || !name || !password) {
res.status(400).json({
message: "입력 값을 다시 확인해주세요"
});
return;
}
try {
const insert_sql = "insert into users (email, name, password, tel) values(?,?,?,?)";
const values = [email, name, password, tel]
const [data] = await conn.query(insert_sql, values);
res.status(201).json({
data: data,
message: `${name}님 환영합니다`
});
} catch (err) {
throw new Error(err);
}
});
router
.route("/users")
.get(async function (req, res) {
let { email } = req.body;
try {
const select_sql =`select * from users where email = ?`;
const [[data]] = await conn.query(select_sql, [email]);
if (!data) {
res.status(404).json({
message: "찾는 유저가 없습니다."
});
return;
}
res.status(200).json(data);
} catch (err) {
throw new Error(err);
}
})
.delete(async (req, res) => {
let { email } = req.body;
try {
const select_sql = "select * from users where email = ?";
const [[userCheck]] = await conn.query(select_sql, [email]);
if (!userCheck) {
res.status(404).json({
message: "찾는 유저가 없습니다."
});
return;
}
const delete_sql = "delete from users where email = ?"
await conn.query(delete_sql, [email]);
res.status(200).json({
message: `${userCheck.name}님 감사했습니다.`
});
} catch (err) {
throw new Error(err);
}
});
module.exports = router;
'프로젝트 > 1.youtube-project' 카테고리의 다른 글
채널 리팩토링 코드 (0) | 2023.12.25 |
---|---|
[실전]미니 프로젝트 - channel과 user ERD를 생각해보자 (0) | 2023.12.17 |
[실전]미니 프로젝트 - 서버에서 router관리하기 (0) | 2023.12.17 |
[실전]미니 프로젝트 - 채널 전체 "조회" (0) | 2023.12.16 |
[실전]미니 프로젝트 - 채널 개별 "수정" (0) | 2023.12.15 |