有没有办法使用node.js和sqlite模块检查是否存在行。这个函数是我现在最好的,但它总是在模块之间返回false是异步的
function auth(uname, pwd) {
var userExists = false;
authDB.serialize(function() {
authDB.each("SELECT * FROM Users WHERE username = '" + uname + "' AND password = '" + pwd + "' LIMIT 1)", function(err, row) {
userExists = true;
console.log(userExists)
});
});
return userExists;
}
有没有办法做到这一点?
由于
答案 0 :(得分:1)
检查row
的值,这是您查询的结果。根据您的数据库驱动程序,如果该行不存在,您将获得[]
或null
。
我从未在节点中使用sqlite3
,但您可以通过简单地搜索肯定不存在的行来轻松检查值是什么。
顺便说一下,你应该从回调中返回userExists
:
function(err, row) {
if (row != ...
return true;
userExists = true;
console.log(userExists)
});
因为数据库查询是异步的。但是在您的代码中,您将从回调之外返回userExists
,该回调将始终早于数据库查询完成。