//express 모듈 세팅
const express = require("express");
const app = express();
app.listen(7777);
app.use(express.json()); //json형태로 된 body를 파싱하는 모듈
//http 외 모듈을 하나 사용할건데, 그게 json형태로 된 body를 파싱하는 모듈을 사용할거야.
let db = new Map();
var id = 1;
//로그인
app.post("/login", function (req, res) {
//id가 디비에 저장된 회원인지 확인
console.log(req.body);
const { userId, password } = req.body;
var loginUser = {}; //{}만 해도 객체가 됨
db.forEach(function (user, id) {
if (user.userId === userId) {
loginUser = user;
}
});
if (isExist(loginUser)) {
console.log("로그인 성공");
if (loginUser.password === password) {
console.log("비밀번호 일치");
} else {
console.log("비밀번호 불일치");
}
} else {
console.log("존재하지 않는 계정입니다.");
}
});
function isExist(loginUser) {
if (Object.keys(loginUser).length) {
return true;
} else {
return false;
}
}
// 회원가입
app.post("/join", function (req, res) {
console.log(req.body);
if (req.body == {}) {
res.status(400).json({
message: `회원가입에 실패하였습니다. 다시 시도해주세요.`,
});
} else {
db.set(id++, req.body);
res.status(201).json({
message: `${db.get(id - 1).name}님 회원가입을 축하드립니다.`,
});
}
});
// 회원 개별 조회
app
.route("users/:id")
.get(function (req, res) {
let { id } = req.params;
/*{id} 이게 뭐냐면! 너 id값 있던데, 그 id값 바로 꺼내서 id라는변수에 바로 담아줘. 라는 뜻이야*/
id = parseInt(id);
const user = db.get(id);
if (user == undefined) {
res.status(404).json({
message: "회원 정보가 없습니다.",
});
} else {
res.status(200).json({
userId: user.userId,
name: user.name,
});
}
})
//회원 개별 탈퇴
.delete(function (req, res) {
let { id } = req.params;
/*{id} 이게 뭐냐면! 너 id값 있던데, 그 id값 바로 꺼내서 id라는변수에 바로 담아줘. 라는 뜻이야*/
id = parseInt(id);
const user = db.get(id);
if (user == undefined) {
res.status(404).json({
message: "회원 정보가 없습니다.",
});
} else {
db.delete(id);
res.status(200).json({
message: `${user.name}님 다음에 또 뵙겠습니다!`,
});
}
});
이런식으로 일단 코드를 짰고,
이제 회원 API 로그인, 회원가입을 할 수 있도록 해줬으니
그리고 이제 채널 API를 설계해보도록 하자.
