Я пытаюсь сравнить введенное письмо на моем веб-сайте, а также те, которые находятся в базе данных, чтобы узнать, существует ли он уже. Если это так, функция возвращает false и отображается ошибка.sqlite3 callbacks (node.js)
var db = new sqlite3.Database('users_db.db');
db.get(
"SELECT * FROM users WHERE useremail = ?",
[email],
function (err, rows) {
if (rows == undefined){
global.returnvalue2 = false;
}
}
);
То, что я хочу, это функция будет работать сразу же после выбора, так что возвращаемое значение является ложным, а запись пользователя не создается.
В настоящий момент я понимаю, что обратный вызов вызывается после всего, поэтому он просто делает выбор и продолжает всю оставшуюся часть программы до конца.
Как проверить, есть ли существующие записи с тем же адресом электронной почты?
Почему вы не можете создать запись пользователя внутри обратного вызова? – Soren
@Soren Поскольку система работает через 3 проверки по электронной почте, паролю и «классу». Если все 3 возвращают true, тогда запись будет создана. Поскольку узел пропускает последнюю проверку электронной почты, он возвращает «true», и поэтому запись создается до того, как будет выполнен обратный вызов. –
Итак, сделайте каскадный обратный вызов - вы не можете сделать это с последовательным программированием – Soren