使用nodejs检查mysql数据库中是否存在电子邮件 [英] Check email exists in mysql database or not with nodejs

查看:76
本文介绍了使用nodejs检查mysql数据库中是否存在电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当用户输入表单时需要检查电子邮件是否存在于 mysql 中.从表单 requser.email 将用户通过电子邮件输入表单.如何将 requser.email 与数据库进行比较以找到匹配项.

Need to check email is exists or not in mysql when user enters in the form. From form requser.email will have user emaild entered in form. How to compare requser.email with database to find match.

 router.post('/signup', function(req, res, next) {
    var requser = req.body.data.user;
  var hash = bcrypt.hashSync(req.body.data.user.password)
  var str = "";

  /*email check start*/

  /*email check end*/
  switch (requser.role) {
    case "approver":
      str = 'INSERT INTO users (name, email, password,role) values("' + requser.name + '","' + requser.email + '","' + hash + '","approver")';
      break;
    case "user":
      str = 'INSERT INTO users (name, email, password,role) values("' + requser.name + '","' + requser.email + '","' + hash + '","user")';
      break;
    case "admin":
      str = 'INSERT INTO users (name, email, password,role) values("' + requser.name + '","' + requser.email + '","' + hash + '","admin")';
      break;
  }
  if (!str) {
    return res.json({
      "status": "error",
      "data": {
        "redirect": "/"
      }
    });
  }
  connection.query(str, function(error, rows) {
    if (error) {
      console.log("error ocurred", error);
    }
    //console.log(rows);
    res.json({
      "status": error ? "error" : "success",
      "data": rows || ""
    })
  });
});

推荐答案

您可以编写一个 SELECT 1 查询来获取该电子邮件地址的记录,或者定义一个 UNIQUE CONSTRAINT 在电子邮件字段上,以便插入失败.

You can either write a SELECT 1 query to get the record with that email address or define a UNIQUE CONSTRAINT on email field so that insert would fail.

这是 UNIQUE CONSTRAINT 和这是 SELECT 1 的示例:

Here's an example of UNIQUE CONSTRAINT and here's an example of SELECT 1:

SELECT 1 FROM users WHERE email = <email>;

这篇关于使用nodejs检查mysql数据库中是否存在电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆