我尝试使用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;
});
});
});
});发布于 2018-12-10 18:28:54
您正在将newUser指定为函数。但是,如果newUser是一个mongoose模式,那么正确的方法是:
const newUser = new newUser({
name: req.body.name,
surname: req.body.surname,
email: req.body.email,
password: req.body.password
});发布于 2018-12-10 19:19:11
看起来像是一个简单的打字错误。const newUser = newUser ({应为const newUser = new User({
new是一个从类创建对象的关键字,在本例中为model
https://stackoverflow.com/questions/53703050
复制相似问题