2017-11-20 1 views
0

내 node/express/mongo setup에서 사용자 생성시 제목에 오류가 계속 발생합니다.잡힌 예외 : TypeError : 정의되지 않은 'complete'속성을 읽을 수 없습니다.

app.post("/api/user", function(req, res) { 

     if (req.session.user) 
     { 
      res.send(409, "You are connected, you can't create an account"); 
      return false; 
     } 

     var email = req.param('email'); 
     var password = req.param('password'); 
     if (!email || !password || email.length < 3 || password.length < 3 || !email.match(config.emailRegex)) 
     { 
      res.send(400, "Please provide a correct email and a correct password"); 
      return false; 
     } 
     database.user.create(email, password, function (user, err) { 
      if (err) 
      { 
       console.log("[error] user %s already exist", email); 
       res.send(409, "This user already exist"); 
       return false; 
      } 
      console.log("[info ] Creating new user %s", email); 
      req.session.user = user.emitted.complete[0]; 
      res.send("User created"); 
     }); 
    }); 

나는 문제가 req.session.user = user.emitted.complete[0];에 생각하지만이에 약간 새로운 해요 이후, 내가 노력 것들로 운이 없었어요 : 여기

던졌습니다 코드입니다.

아이디어가 있으십니까?

+0

을 위해 예약된다. 아마도 emmited 키에는 complete라는 배열이 없을 것입니다. – itsundefined

답변

0

추가 안전 장치 코드 :

if(user && user.emitted && user.emitted.complete){ 
    req.session.user = user.emitted.complete[0]; 
} 
+0

덕분에 도움이되었습니다. 나는 또한 사용자를 디버깅하는 데 약간의 시간을 할애 할 것이다. –

0

콜백 인수의 문제처럼 보인다. 콜백의 첫번째 인자는 단지 req.session.user 명령 위에 CONSOLE.LOG (사용자) 등 기본적인 디버깅 사용해 오류 객체

database.user.create(email, password, function (err, user) { 
    //rest of your code will go here..!!! 
}) 
관련 문제