如何解决一个错误的消息问题的NodeJS
我与我的形式在注册过程中有一个问题,当我点击了所有领域完成和电子邮件(已经在DB)提交表单被重置,并在第二次点击错误信息(电子邮件已经在DB和其他味精。 ..)..出现了什么问题?
router.post('/register', function(req, res) {
var name = req.body.name;
var email = req.body.email;
var username = req.body.username;
var password = req.body.password;
var password2 = req.body.password2;
req.checkBody('username', 'Veuillez renseigner un identifiant').notEmpty();
req.checkBody('email', 'Veuillez renseigner une adresse email valide').isEmail();
req.checkBody('password', 'Veuillez renseigner un mot de passe').notEmpty();
req.checkBody('password2', 'Les mots de passe ne correspondent pas').equals(req.body.password);
var errors = req.validationErrors();
if(errors) {
res.render('register', {errors:errors});
} else {
User.findOne({ email: email }).then(user => {
if (user) {
req.flash('error_msg','EMAIL ALREADY IN DB');
res.render('register', {errors:errors});
} else {
var newUser = new User({
email: email,
username: username,
password: password
});
User.createUser(newUser, (err,user) => {
if(err) throw err;
console.log(user)
})
req.flash('success_msg','u can now log u account is created')
res.redirect('/users/login')
}
});
}
});
感谢您的帮助:)
回答如下:好像你不等待的createUser回调函数来响应你验证一切都已成功之前。