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

home2 게시판 Node.js, Express 게시판 mongoose 회원가입 기능질문입니다.

mongoose 회원가입 기능질문입니다.

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

    김창규
    참가자

    안녕하세요 제가 회원가입 기능 테스트를 하다 이상한 버그를 발견해서 질문드립니다.

    제가 회원가입을 직접 해보며 코드가 잘 동작하는지 테스트중 하나의 계정은 만들어 지는데

    하나 이상의 계정이 만들어지지 않습니다 코드는 아래와 같이 짰습니다.

    (가장 아래에 클라이언트로 전송받은 에러 메세지도 일단 적어두겠습니다.)

     

    app.post('/Sign_up',function(req,rsp){
       db.collection('UserInfo').findOne({ id: req.body.id },function(err,result){
         if(err) rsp.status(400).send({ message: '회원가입에 실패했습니다.' })
         if(result){
            return rsp.status(400).send({ message: '이미 존재하는 아이디 입니다.' })
          }
         if(!result){
          crypto.randomBytes(64, (err, buf) => {
            if(err) rsp.status(400).send({ message: '회원가입에 실패했습니다.' })
            crypto.pbkdf2(req.body.pw, buf.toString('base64'), 123121, 64, 'sha512', (err, key) => {
              if(err) rsp.status(400).send({ message: '암호화에 실패했습니다.' })
              const user = new model({
                _id: new mongoose.Types.ObjectId(),
                id: req.body.id,
                pw: key.toString('base64'),
                phone: req.body.phone,
                salt: buf.toString('base64'),
              });
              user.save()
              .then(() => { 
                return rsp.status(200).send({ message: '회원가입에 성공했습니다.' })
              })
              .catch((err) => { 
                return rsp.status(400).send({ messgae: '가입에 실패했습니다 다시 시도해 주십시오',error: err })
              })
            });
          });
         }
       })
     });

     

     

    에러 메세지

     

    error:
      code: 11000
      driver: true
      index: 0
    keyPattern:
      name: 1
      __proto__: Object
    keyValue:
      name: null

    #11393

    codingapple
    키 마스터

    아마 에러메세지 전체가 필요할 것 같은데요 

    db에서 저장이 실패한것이면 어디서 실패했는지

    아니면 프론트엔드에서 요청이 이상한거면 요청이 잘 들어오고 있는지

    터미널에서 출력해봐야할듯합니다 

    #11395

    김창규
    참가자

    이런식으로 오류가 뜹니다.

     

    MongoError: E11000 duplicate key error collection: to-do-app.UserInfo index: name_1 dup key: { name: null }
    at Function.create (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\core\error.js:57:12)
    at toError (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\utils.js:130:22)
    at C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\operations\common_functions.js:258:39
    at handler (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\core\sdam\topology.js:943:24)
    at C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\cmap\connection_pool.js:350:13
    at handleOperationResult (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\core\sdam\server.js:558:5)
    at MessageStream.messageHandler (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\cmap\connection.js:281:5)
    at MessageStream.emit (node:events:365:28)
    at processIncomingData (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\cmap\message_stream.js:144:12)
    at MessageStream._write (C:\Users\canky\OneDrive\바탕 화면\iamport-react-example-master\node_modules\mongoose\node_modules\mongodb\lib\cmap\message_stream.js:42:5)
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at MessageStream.Writable.write (node:internal/streams/writable:334:10)
    at TLSSocket.ondata (node:internal/streams/readable:751:22)
    at TLSSocket.emit (node:events:365:28)
    at addChunk (node:internal/streams/readable:314:12) {
    driver: true,
    index: 0,
    code: 11000,
    keyPattern: { name: 1 },
    keyValue: { name: null }
    }

     

    #11401

    codingapple
    키 마스터

    에러난 컬렉션과 관련된 인덱스를 atlas에서 다 지워봅시다 

    어떤 document에 특정 속성이 비어있거나 그러면 가끔 그런 에러가 뜹니다 유저 document도 다 삭제합시다 

    그리고 가입시 필드를 전부 잘 입력해서 테스트 해봅시다 

    #11405

    김창규
    참가자

    감사합니다 해결 되었습니다.

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

About

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

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

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