首页 > 解决方案 > 如何在 Mongoose 中更新/更新文档/数据?Passport MongoDB、Express、AngularJS、Nodejs

问题描述

var LocalStrategy = require('passport-local').Strategy;

// load up the user model
var User = require('../app/models/user');

// save the user
newUser.save(function(err) {
  if (err)
    throw err;
  return done(null, newUser);
});

标签: mongodbexpressmongoosepassport.jsupsert

解决方案


passport.use('local-update', new LocalStrategy({

    usernameField : 'email',

    passwordField : 'password',

    passReqToCallback : true //allowsustopassbacktheentirerequest to the 
},
function(req, email, password, done) { // callback with email and password 

    console.log("local-update") 

    // find a user whose email is the same as the forms email

console.log(req.user._id)

   //console.log(email) 

    // find a user whose email is the same as the forms email

    // we are checking to see if the user trying to login already exists 

            // if there is no user with that email

            // create the user

            var newUser = new User();

            // set the user's local credentials

            newUser.local.username    = req.user.local.username;

            newUser.local.email = email;

            newUser.local.password = newUser.generateHash(password);

            console.log(password)

            console.log(newUser)

            //console.log(newUser)

            // update the user

            newUser._id=req.user._id;

// 如果找到用户但密码错误

User.findOne({ _id: req.user._id},

功能(错误,用户)

{

// if there are any errors, return the error before anything else  

if (err){

    return done(err); 

}

别的 {

// all is well, return successful user

console.log(password);


}

User.update( {_id: req.user._id}, newUser, {upsert: true}, function(err,user, numberAffected, rawResponse) {

                if (err){

                    console.log('new profile update error');

                return done(err);

                }

                 // all is well, return successful user

                 else

                 {
                   // if (User.setUser(newUser.local.password))

                    console.log('new profile update');

                    console.log(user);      

return done(null, newUser,req.flash('passMessage', '密码更改成功。'));

            }});

});

}));

推荐阅读