2017-05-11 8 views
0

Ich brauche Hilfe, um dies herauszufinden. Die Update-Funktion wird aufgerufen, um ein Passwort für die Datenbank zurückzusetzen. Ich habe diesen Fehler erhalten.NodeJS und Mongodb findOneAndUpdate

Typeerror: kann Eigenschaft ‚Passwort‘ undefinierter

module.exports.update = function (token, req, res) { 
    User.findOneAndUpdate({resetPasswordToken: token, password: req.body.password, resetPasswordExpires: {$gt: Date.now()}}, function(err) { 
     if (err) throw err; 
     return res.sendStatus(200); 
     console.log(User); 
    }); 
} 

router.post('/forgot', function (req, res) { 

    var password = req.body.passwordnew; 
    var password2 = req.body.passwordnew2; 

     var update = User.update(password, password2, function (err, user) { 
      //userToken = token; 
      if (!update) { 
       console.log("token2 = " + req.params.resetPasswordToken); 
       req.flash('error', 'Password reset token is invalid or has expired.'); 
       return res.redirect('forgot'); 
      } 
      else { 
       user.save(function (err) { 
        user.password = password; 
        user.password2 = password2; 
        user.resetPasswordToken = undefined; 
        user.resetPasswordExpires = undefined; 
       }); 
       console.log("save new password"); 
      } 
     }); 
    //} 

}) 

Antwort

0

lesen, wenn Sie Update-Methode von Mungo 1. Parameter verwenden, wird Abfrage (von denen Sie diese doccument in der Sammlung finden) und 2. wird was Sie wollen ..

So zu aktualisieren, was abfragen Sie machen, ist nicht sinnvoll, es wird sein wie:

var userId=user; //mongoId 
var newPassWord=req.body.passwordnew; 

User.update({_id:userId}, {password:newPassWord}, callbackFunction); 

Dies wird das Passwort des betreffenden Benutzers aktualisieren.

Dank