Запрос MySQL в моем коде javascript не возвращает значение isValid и учетные данные

#mysql #node.js #rest #hapi

Вопрос:

У меня есть код, который я использую для создания REST API с использованием Hapi.js и используйте базовую аутентификацию, интегрировав ее с SQL. Здесь я чувствую себя сбитым с толку, потому что мой код не возвращает результат if … из MySQLdb.query в моем коде

 server.auth.strategy('simple', 'basic', {
    validate: async (request, username, password) => {
      const validating = mySqlDb.query(
          'SELECT * FROM users WHERE username = ? '  
      'AND password = ?;',
          [username, password], function(error, results, fields) {
            let isValid;
            let credentials;
            console.log(results);
            if (results.length === 1) {
              isValid = true;
              credentials = {
                account: username,
                login: 'now',
              };
              return {isValid, credentials};
            }
            if (results.length === 0) {
              isValid = false;
              credentials = null;
              return {isValid, credentials};
            }
          },
      );
      console.log(validating); //To check the value of validating
      return validating; //Validating does not returns isValid or credential values from that if... statement
    },
  },
  );
 

Эта проблема возникает при возврате значения проверяющей переменной, которая возвращает значение другого значения, а не результат оператора if…, который возвращает значение isValid и учетные данные. Это вызвало ошибку «Неверное имя пользователя и неверный пароль» при тестировании с почтальоном.

 {
    "statusCode": 401,
    "error": "Unauthorized",
    "message": "Bad username or password",
    "attributes": {
        "error": "Bad username or password"
    }
}
 

Что не так в моем коде и что я должен исправить в своем коде?