mongodb - 如何在 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);
});
解决方案
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', '密码更改成功。'));
}});
});
}));
推荐阅读
- json - 在命令行中使用 osmtogeojson 编码问题
- react-native - 按 id 分组通知并像 Whatsapp 一样显示
- c - 结构看不到指针?
- android - 在选择器 StateListDrawable 中使用 attr 引用
- javascript - 如何使用单独的模板文件构建简单的 Vue.js 应用程序?
- python - 在散景中通过 CustomJS 触发 HoverTool 工具提示的显示
- kotlin - Kotlin 测试,如何使用 DescribeSpec 测试样式运行 BeforeEach
- javascript - V-Select 在一次选择中显示整个阵列
- r - 在使用多个模式时找出匹配的模式
- python - 我想检查 html 文本作为条件,但我应该如何处理 &nsbp 或?