User.register方法的passport本地猫鼬,但添加了多个属性



根据文档,该方法是下一个:

User.register({username:'username', active: false}, 'password', function(err, user) {
...
});

但是,如果我的User模型有更多的属性,如address、firstName、lastName等,该怎么办?

如何添加其他属性?

在处理了许多错误后,我找到了答案。

1.-根据您创建的表单创建新模型:

const newUser = new User({
name: req.body.firstName,
lastName: req.body.lastName,
address: req.body.address,
username: req.body.email
})

你总是需要"用户名";否则就不会起作用。

2.-调用方法User.register

User.register(newUser, req.body.password , function(err,user){
if(err){console.log(err); res.redirect("/register")}
else{
//A new user was saved
console.log(user + "2");
passport.authenticate("local")(req,res,function(){
res.redirect("/")
})
}
})

正如您所看到的,第一个参数不再是{username:"..quot;},相反,该方法将把模型的所有属性发送到您的mongoDB。第二个参数是ALWAYS用户的密码,因为该方法将对其进行哈希和加盐处理。

最新更新