Javascript Node.js Sqlite3(如果行存在)

Javascript Node.js Sqlite3(如果行存在),javascript,node.js,sqlite,Javascript,Node.js,Sqlite,是否有任何方法可以使用node.js和sqlite模块检查行是否存在。这个函数是我现在拥有的最好的函数,但是在异步模块之间它总是返回false function auth(uname, pwd) { var userExists = false; authDB.serialize(function() { authDB.each("SELECT * FROM Users WHERE username = '" + uname + "' AND password =

是否有任何方法可以使用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;
}
有没有办法做到这一点


谢谢

检查
的值,这是您查询的结果。根据您的数据库驱动程序,如果行不存在,您将获得
[]
null

我从来没有在node中使用过
sqlite3
,但是您可以通过简单地搜索确定不存在的行来轻松检查值是什么

顺便说一句,您应该从回调中返回
userExists

 function(err, row) {
        if (row != ...
             return true;
        userExists = true;
        console.log(userExists)
    });

因为数据库查询是异步的。但在代码中,您从回调外部返回的
userExists
总是在数据库查询完成之前发生。

如果行存在,会发生什么情况?user exists的值应更改为true。在任何方面,我只想返回true,如果行存在异步调用,则不可能返回。我认为
DB。没有返回行时,每个
都不会执行,因此无法检查row变量。