회원가입을 할때, 아이디와 닉네임 등을 작성하고 중복확인한다.
회원가입 버튼
과 별개로 중복확인
버튼이 있기 때문에, 구분해서 api를 작성했다.
구현한 로직은 다음과 같다.
const db = require("../../db");
module.exports = {
checkId: async (req, res) => {
try {
const sql = "SELECT userId FROM users WHERE userId=?";
const params = [req.body.userId];
db.query(sql, params, (err, result) => {
if (err) throw err;
else {
if (result.length === 0) {
res
.status(200)
.json({ data: null, message: "사용가능한 아이디입니다" });
} else {
res
.status(200)
.json({ data: result, message: "이미 사용중인 아이디입니다" });
}
}
});
} catch (err) {
throw err;
}
},
checkNickname: async (req, res) => {
try {
const sql = "SELECT nickname FROM users WHERE nickname=?";
const params = [req.body.nickname];
db.query(sql, params, (err, result) => {
if (err) throw err;
else {
if (result.length === 0) {
res
.status(200)
.json({ data: null, message: "사용가능한 닉네임입니다" });
} else {
res
.status(200)
.json({ data: result, message: "이미 사용중인 닉네임입니다" });
}
}
});
} catch (err) {
throw err;
}
},
};
아이디 중복확인 버튼
클릭시 checkId 함수가 동작한다. 데이터베이스에 아이디가 존재하면 이미 사용중인 응답객체(res)의 message에 "이미 사용중인 아이디입니다"라고 보내고, 존재하지 않는다면 "사용가능한 아이디입니다"라고 보낸다.