我的问题的上下文是我正在尝试做一个网站注册页面,并且在其中,我正在尝试检查数据库中是否已经包含电子邮件。为此,我正在尝试编写一个函数,该函数将返回数据库中的所有电子邮件,这样我就可以做一个
if (emails.includes(new_user_email) {
return error;
}
之类的事情。
本质上,我想要一些可以返回布尔值的东西,告诉我电子邮件是否已经存在。所以返回一个我可以检查的数组,甚至只是在数据库中搜索电子邮件,但在返回真或假之前等待。
我已经尝试过下面的函数来返回一组电子邮件,尽管我知道由于 sqlite3 的异步特性,这不起作用。我的问题是在返回结果之前我无法获得等待 sql 代码运行的函数。
function get_all_emails() {
let emails = []
db.all("SELECT email FROM users", [], (err, rows) => {
if (err) {
throw err;
}
rows.forEach((row) => {
emails.push(row.email);
});
return emails;
});
}