根据文档,该方法是下一个:
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用户的密码,因为该方法将对其进行哈希和加盐处理。