我在基于 RethinkDB Chat 示例的 Node 登录/注册系统上工作,当时我发现它不会检查用户是否存在电子邮件或用户名,这是一个问题。当我试图解决这个问题时,我无法找出原因,因为运行数据库检查需要一个带有函数的回调,这使得它很难实现。
if (typeof req.user !== 'undefined') {
res.redirect('/account');
return;
}
if (!validateEmail(req.param('email'))) {
req.flash('error', 'Not a valid email address!')
res.redirect('/register');
return;
}
// Add a check for EMAIL/USERNAME here.
if (req.param('password') !== req.param('password2')) {
req.flash('error', 'Passwords does not match!')
res.redirect('/register');
return;
}
如果用户存在的用户名或邮件与它将发送的形式相同的用户名或邮件存在,我需要什么帮助:
if (alreadyExists) {
req.flash('error', 'That username/email is already in use.')
res.redirect('/register');
return;
}
所以主要问题是我必须知道它是否存在于与其他函数相同的函数中,而不是回调中。任何帮助表示赞赏!