繁体   English   中英

尝试读取MYSQL查询的结果时,无法读取未定义的属性“ length”

[英]Cannot read property 'length' of undefined when trying to read the results of a MYSQL query

我已经在这个问题上停留了一段时间,我可能只是个愚蠢的人,但我希望它还不错。 我受命使用NodeJS + Express + MYSQL创建一个简单的系统。 用户可以在其中登录和注销,同时检查现有的用户名/电子邮件

因此,给出我当前错误的代码(已经经历了许多迭代和实现)

var userExists;
var emailExists;

var userCheck = 'SELECT * FROM users WHERE uname =' + req.body.email;

connection.query(userCheck, function (error, results) {
    if (error) {
        userExists = true;
        res.json({
            status: false,
            message: 'there are some error with query'
        })}
        if (results.length > 0) {
            userExists = true;
            res.json({
                status: false,
                message: 'Username already exists'
            });
        } else {

            userExists = false;
        }
});

我遇到一个问题:

'TypeError:无法读取未定义的属性'length'

在过去的10个小时里,使用此代码我已经经历了很多事情,但是我希望这不是一个菜鸟的错误! 任何帮助将不胜感激!

您当前的代码将尝试检查results.length而不管是否存在错误 如果有错误, results可能是undefined ,因此继续检查results.length会抛出错误。 考虑在if (error)块底部return ing:

connection.query(userCheck, function (error, results) {
  if (error) {
    userExists = true;
    res.json({
      status: false,
      message: 'there are some error with query'
    });
    return;
  }
  if (results.length > 0) {
    userExists = true;
    res.json({
      status: false,
      message: 'Username already exists'
    });
  } else {
    userExists = false;
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM