我试图将我网站上输入的电子邮件与数据库中的电子邮件进行比较,以查看它是否已存在。如果是,则该函数返回false并显示错误。
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;
}
}
);
我想要的是在选择之后立即运行该函数,以便返回的值为false,并且不创建用户记录。
目前我意识到回调是在所有事情之后被调用的,所以它只是进行选择并在程序的其余部分继续进行直到结束。
如何查看是否有同一封电子邮件的现有记录?
答案 0 :(得分:0)
这是我制作的一个。
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('iHacks.db');
function get_user_credentials (email, password)
{ return new Promise((rs, rj) => {
function callback (err, User)
{
if (err) rj(err);
rs(User);
}
db.get('select * from users where email=? and password=?', [email, password], callback);
}); }
function login (email, password)
{ return new Promise ((rs, rj) => {
// Hashing the password.
password = sha256(password + 'EzSalt');
// Creating an Error
const err = new Error('Email or password did not match!');
// Callback functions
function check (User)
{
rs(User);
}
function fail (err)
{
rj(err);
}
// Getting the user credentials
get_user_details(email, password).then(check).catch(fail);
}); }
login()
.then(/* Continue code */)
.catch(err => {throw new Error(err); })
;