【发布时间】:2019-05-23 23:18:27
【问题描述】:
我的问题的背景是我正在尝试创建一个网站注册页面,并且在其中,我正在尝试检查电子邮件是否已包含在数据库中。为此,我正在尝试编写一个函数,该函数将返回数据库中的所有电子邮件,这样我就可以做一个
if (emails.includes(new_user_email) {
return error;
}
那种东西。
基本上我想要一些可以返回布尔值的东西,告诉我电子邮件是否已经存在。所以返回一个我可以检查的数组,甚至只是在数据库中搜索电子邮件,但在返回 true 或 false 之前等待。
我尝试了下面的函数来返回一组电子邮件,尽管我知道由于 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;
});
}
【问题讨论】:
标签: node.js sqlite node-sqlite3