-
글쓴이글
-
2021년 5월 19일 20:15 #9558
코린이참가자안녕하세요 선생님
강의 잘 듣고있습니다.
강의 완강 후 개인 프로젝트 진행중인데 회원가입 기능을 구현할때 다음과 같이 ajax를 get요청을 통해 아이디 중복여부를 검사하는 코드를 짰습니다.
------------------------AJAX 코드----------------------------
$(".btn-danger").eq(0).click(function(){
var inputId = $("input").eq(0).val(); // 아이디 입력란의 value 값을 가져온다
$.ajax({
method:"GET",
url:"/duplicateId",
data: {
id: inputId
},
dataType: "text",
success: function(serverdata){
console.log(serverdata);
},
error: function(serverdata){
console.log(serverdata);
}
})
})------------------------SERVER.JS 코드----------------------------
app.get("/duplicateId",function(req,res){
db.collection("user").findOne(req.body, function(error,success){
if(error) {
res.status(400).send("사용 가능한 아이디입니다.")
} else if(success){
res.status(200).send("중복된 아이디입니다.")
}
})
})컬렉션에는 {id:"test", pw:"test", email:"test@naver.com"} 이렇게 저장되어 있고
해당 input 박스에 test를 입력하고 중복확인을 누르면 중복됐다는 메시지를 서버에서 받아올 순 있습니다. 근데 컬렉션에 없는 임의의 문자를 입력했을때도 중복됐다는 메시지를 서버에서 받는데...뭐가 잘못 된건지 봐주실 수 있으신가요?ㅠㅠ
2021년 5월 20일 00:01 #9565
codingapple키 마스터1. 서버로 데이터를 보낼 땐 post요청을 하셔야합니다 그래야 req.body하면 뭐가 나올걸요
2. 일단 내 생각대로 if문을 사용하는 것 보다는 아이디를 찾았을 때 error,success 에 뭐가 담겨오는지 이런걸 콘솔창에 출력해보고 if문을 거는게 좋습니다3. 아마 원하는 아이디를 db에서 못찾으면 에러가 뜨는게 아니라 success파라미터에 아무것도 안담겨오거나 그럴 겁니다
그래서 if문을 "success에서 아무것도 못찾아오면 이거해주고 뭐 찾아오면 이거해주셈" 이런 식으로 짜면 될텐데
콘솔창에 success를 출력해보고 짜도록 합시다 근데 success보다 result가 맞는 작명법인듯요
2021년 5월 20일 11:41 #9574
코린이참가자————————AJAX 코드—————————-
$(".btn-danger").eq(0).click(function(){
var inputId = $("input").eq(0).val(); // 아이디 입력란의 value 값을 가져온다
$.ajax({
method:"POST",
url:"/duplicateId",
data: {
id: inputId
},
dataType: "text",
success: function(serverdata){
if(serverdata==="중복된 아이디입니다."){
$("input").eq(0).val("");
alert(serverdata);
} else {
alert("사용 가능한 아이디입니다.");
duplicateComplete1 = true;
}
},
fail:function(){
alert("에러");
}
})
})————————SERVER.JS 코드—————————-
app.post("/duplicateId",function(req,res){
db.collection("user").findOne(req.body, function(error,result){
if(result) {
res.send("중복된 아이디입니다.");
} else {
res.send("사용 가능한 아이디입니다.");
}
})
})답변 감사합니다. 이렇게 하니까 중복체크가 잘 되는것 같은데 약간...야매 느낌이 나네요...
-
글쓴이글
- 답변은 로그인 후 가능합니다.