我尝试使用Express和bcrypt在我的应用程序中设置注册功能,但是我遇到了问题。我按照步骤对密码进行加密,但是未定义变量newUser。 有什么问题吗?
/
/ Register Form POST
const bcrypt = require('bcryptjs');
router.post('/register', (req, res) => {
const newUser = newUser ({
name: req.body.name,
surname: req.body.surname,
email: req.body.email,
password: req.body.password
});
bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newUser.password, salt, (err, hash) => {
if(err) throw err;
newUser.password = hash;
newUser.save()
.then(user => {
req.flash('success msg', 'Vous êtes maintenant enregistré et pouvez vous connecter.');
res.redirect('/app');
})
.catch(err => {
console.log(err);
return;
});
});
});
});
答案 0 :(得分:1)
您要分配newUser
作为函数。
但是,如果newUser
是猫鼬模式,则正确的方法是:
const newUser = new newUser({
name: req.body.name,
surname: req.body.surname,
email: req.body.email,
password: req.body.password
});
答案 1 :(得分:0)
看起来像一个简单的错字。
const newUser = newUser ({
应该是const newUser = new User({
new是一个关键字,它从类(在这种情况下为模型)创建对象