Не удается прочитать свойство 'длина' неопределенного при попытке прочитать результаты запроса MYSQL - PullRequest
0 голосов
/ 17 марта 2019

Я застрял в этом вопросе некоторое время, и я мог быть просто глупым, но я надеюсь, что это не так уж плохо. Мне было поручено создать простую систему, используя 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 часов с этим кодом, но я надеюсь, что это не слишком большая ошибка новичка! Любая помощь будет оценена!

1 Ответ

1 голос
/ 17 марта 2019

Ваш текущий код попытается проверить .length из results независимо от того, есть ли ошибка .Если есть ошибка, results может быть undefined, поэтому проверка results.length сгенерирует.Рассмотрим return в нижней части блока if (error):

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;
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...