• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 회원가입 중복검사 기능

회원가입 중복검사 기능

9 글 보임 - 1 에서 9 까지 (총 9 중에서)
  • 글쓴이
  • #27484

    최정민
    참가자

    회원가입 중복검사 관련된 자료나 영상 올려주실 생각 없나요? ㅠ

    2일 동안 계속 찾아봤는데 검색해도 너무 어렵고 환경이 다르고

    막혀서 너무 답답하네요 

    #27499

    codingapple
    키 마스터

    1. 유저가 아이디 비번을 서버로 보내면 

    2. 서버는 유저 아이디를 db에서 findOne() 합니다

    3. 결과가 있으면 /실패 페이지 보여주기 

    4. 결과가 없으면 db에 아이디와 비번을 저장해주기

    라고 코드짜면 됩니다

     

    #27503

    최정민
    참가자

    app.post('/login',function(req,res){
      db.collection('post').findOne({id:req.body.id},function(error,result){
        console.log(result.id)
        if(result.id == req.body.id ){res.send('중복된 아이디입니다.')}
        else{db.collection('post').insertOne({id:req.body.id, pw:req.body.pw} , function(error,result){
          console.log(result)
          res.redirect('/');
        })}
      })
    })

    중복된 아이디라고 뜨는 부분은 잘 되는데

    중복 안 된 아이디는

    TypeError: Cannot read properties of null (reading 'id')

    이런 에러가 뜨네요 ㅠ

    #27517

    codingapple
    키 마스터

    post 컬렉션은 할일 게시물들 들어있는 곳이 아닐까요 

    다른 컬렉션에 넣어야할듯합니다 

    강의에서 app.post('/login',  이거 쓴거같은데 이거랑 중복이될수 있어서 라우트 이름도 다르게 합시다 

    #27683

    최정민
    참가자

    이 부분만 빼와서 따로 회원가입 React 파일 만들고 있습니다

    중복된 아이디를 쳤을때는 정상 작동하는데

    중복되지 않은 아이디를 입력했을때만 저 에러가 뜹니다

    #27685

    최정민
    참가자

    app.post('/login',function(req,res){
      db.collection('post').findOne({id:req.body.id},function(error,result){
        if(result.id == req.body.id ){res.send('중복된 아이디입니다.')}
      })
    })

    심지어 이렇게 지우고 했을때는 

    result.id 가 올바른 값을 내는데

    else에만 문제가 생기네요 ㅠ

    #27693

    codingapple
    키 마스터

    왜냐면 findOne() 후에 result가 아무것도 없으면 null 이 남아서 그런듯요 

    result만 출력해보고 result가 null일 경우 db에 저장하라고 if문을 바꿔봅시다

    #27806

    최정민
    참가자

    그렇게 해도 안되는데 그냥 중복검사 포기하겠습니다 몇일동안 시간만 날렸네요 ㅠ

    #28774

    최성혁
    참가자

    보실지는 모르겠지만, result가 null일 때 result.id를 쓰면 오류나는 거 같아서, 조건을 if (result == null) { 정상 가입 } else { 중복입니다 } 이렇게 구현하니 되더라고요.

9 글 보임 - 1 에서 9 까지 (총 9 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠