웹 풀스택
[Node.js] 유튜브 서비스 - 로그인(POST)
kevinmj12
2025. 2. 20. 16:34
app.post("/login", (req, res) => {
let body = req.body;
let userId = body.id;
let password = body.password;
// 정보가 누락된 경우 예외 처리
if (!userId) {
res.status(400).json({
message: "id가 포함되어있지 않습니다.",
});
} else if (!password) {
res.status(400).json({
message: "password가 포함되어있지 않습니다.",
});
} else{
}
res.json(`님 환영합니다!`);
});
먼저 userId 또는 password가 입력되지 않을을 때에 대한 예외 처리를 진행해주었다.
else문에 userDb에서 id, pw를 조회하는 코드를 구현하자.
app.post("/login", (req, res) => {
let body = req.body;
let userId = body.id;
let password = body.password;
let loginUser = {};
// 정보가 누락된 경우 예외 처리
if (!userId) {
res.status(400).json({
message: "id가 포함되어있지 않습니다.",
});
} else if (!password) {
res.status(400).json({
message: "password가 포함되어있지 않습니다.",
});
} else {
userDb.forEach((val, idx) => {
if (val.id === userId) {
loginUser = val;
}
});
if (Object.keys(loginUser).length !== 0) {
if (loginUser.password === password) {
res.json({
message: `${loginUser.name}님 환영합니다!`,
});
} else {
res.json({
message: "패스워드가 일치하지 않습니다",
});
}
} else {
res.json({
message: "아이디가 일치하지 않습니다.",
});
}
}
});
먼저 테스트용 id, password로 회원가입을 진행해준 뒤,
맞는 id, password를 입력하면 정상적으로 로그인 처리가 진행된다.
이외에도 존재하는 아이디와 일치하지 않는 패스워드를 입력한 경우와,
존재하지 않는 아이디를 입력한 경우 모두 잘 처리되는 것을 확인할 수 있다.