2017-10-21 49 views
0

Salut, je veux me connecter à mongo db pour vérifier si l'utilisateur est déjà inscrit ou non sinon je veux enregistrer user_number phone et faire un code pour son login et s'il est déjà inscrit je veux juste envoyer le code pour la connexion le problème est quand je l'ai écrit le code, il ne vérifie pas (si) déclaration et continue à la fin et envoyer une erreur videse connecter à mongodb depuis .then

userModel.findOne({phone_number: req.body.phone_number}).then(function (err, res) { 
     console.log('if start'); 
     if (err) { 
      res.send(err) 
     } else { 
      if (res.length){ 
       codeModel.create({ 
        phone_number: req.body.phone_number, 
        code_Number: Math.floor((Math.random() * 5000) + 1000) 
       }).then(function (created) { 
        console.log('response then'); 
        res.status(200).send(created); 
       }) 
      } 
      else { 
        console.log("blah blah blah"); 
        userModel.create(req.body).then(function (jobs) { 
         res.status(200).send(jobs) 
        }) 
       } 
     } 
+1

['then()'] (https: //developer.mozi lla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) n'a pas '((err, res)' c'est seulement 'res'. Le 'err' est traité dans [' .catch() '.] (Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch). Aussi par votre nommage "model" et la méthode '.create()', ce serait "mongoose". –

+0

oui c'est de la mangouste donc si je répare ce que tu as dit mon code devrait aller? –

+1

Vous devriez lire ces liens. Les promesses sont différentes des rappels. Vous avez également des problèmes de continuité dans la logique. Mais une étape à la fois. –

Répondre

0

je me suis trouvé, il l'erreur est à faire .then placement il devrait être après la fonction

userModel.findOne({phone_number:req.body.phone_number},function (err, user) { 
     if (err){ 
      res.status(400).send(err) 
     } 
    }).then(function (result) { 
     console.log(result + " data "); 
      console.log('user'); 
      if (result == null || result == ''){ 
       //user peida nashod 
       console.log('peida nashod'); 

       userModel.create(req.body).then(function (resp) { 
        console.log(resp + " resp "); 
       }).catch(next); 

       codeModel.create(req.body).then(function (code) { 
        console.log(code); 
        res.status(200).send({ 
         message:"afarin", 
         code: code 
        }) 
       }).catch(next) 
      } 
      else { 
       codeModel.create(req.body).then(function (code) { 
        console.log(code); 
        res.status(200).send({ 
         message:"afarin", 
         code: code 
        }) 
       }).catch(next) 
      } 

    }).catch(next)