Py学习  »  DATABASE

快速验证器检查MySQL中是否存在电子邮件

Hafizi • 4 年前 • 358 次点击  

im使用express validator检查输入的req.body是否有效,并检查mysql数据库中是否有重复的电子邮件

这是我的代码:

  router.post(
  "/signup",
  [
    body("uemail","email is not valid")
    .isEmail()
    .normalizeEmail()
    .custom(async (email, {req} )=>{

        const queryString = "SELECT uid FROM EarlyUsers WHERE `uemail` = ?";
        return await connection.query(queryString, [email], (err, rows, fields) => {
          if (err) {
            console.log(err)
          }else {
            if (rows.length != 0) {
              return false
            } else {
              return true
            }
          }
        });

    })
    ,
    body("uname").isLength({ min: 5 })
  ],
  authControllers.signUp
);

我不知道为什么这个自定义验证器不工作。 我试着抛出新的错误,而不是返回false,但它只是破坏了整个过程。我真的需要帮助

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46974
 
358 次点击  
文章 [ 1 ]  |  最新文章 4 年前
DaFois TKdevlop
Reply   •   1 楼
DaFois TKdevlop    5 年前

为了让它正确工作而不是返回错误,你拒绝了承诺。

if (rows.length != 0) {
    return Promise.reject("user already exists.");
}