【发布时间】:2019-08-27 17:53:14
【问题描述】:
我正在调用一个函数来查看电子邮件地址是否在数据库中。它是一个空数组或填充数组。每当我返回这个值时,它都是未定义的。我该如何解决这个问题?提前致谢!
我尝试过使用 next() 和 promises。
调用db查询函数的函数。
const emailExists = async function(req,res,next){
let emailInDb = await usermodel.getOneByEmail(req, next);
console.log(emailInDb);
if(emailInDb.length !==0){
res.send('email already in use!');
}
else{
return next();
}
};
数据库查询。
const getOneByEmail = function (req, next){
let db = new sqlite3.Database(dbPath, (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to books db.');
});
db.all(`SELECT * FROM users WHERE email = ?`, [req.body.email],
(err, rows) => {
console.log(rows);
return rows;
});
};
console.log(emailInDb) 未定义。 虽然 console.log(rows) 给出了一个带有结果的数组。
【问题讨论】:
标签: javascript node.js sqlite