gpt4 book ai didi

Node.JS Rethink-DB 检查用户名和电子邮件是否已存在

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:22 25 4
gpt4 key购买 nike

我正在使用基于 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;
}

所以主要问题是我必须知道它是否存在于与其他函数相同的函数中而不是回调中。如有任何帮助,我们将不胜感激!

最佳答案

我通常处理这样的事情的方式是:

User.filter({username:req.body.username}).run().then(function(userArray){ 
if(userArray[0]){return res.status(500).json({Error : "Username is in use"});}

我在使用回调时没有遇到任何问题。您试图避免它有什么具体原因吗?

编辑:显然,将我的示例中的用户名替换为您想要检查的内容(在您的情况下为电子邮件地址)。这里的User是我的用户模型。我也同意 Tholle 关于使用 POST 请求的观点。您永远不想在查询字符串/URL 中发送用户的信息/凭据

关于Node.JS Rethink-DB 检查用户名和电子邮件是否已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com