(node.js的sqlite3模块)Fetchall语句?

时间:2015-09-12 18:23:08

标签: node.js sqlite

我目前正在将python程序转换为node.js,并为它们使用sqlite3模块。我的python代码是这样的:

    users_db = sqlite3.connect(drive()+'\\Recovered\\NewProgramVersions\\users_db.db')
    c=users_db.cursor()

    c.execute("SELECT * FROM users WHERE useremail=?",(email,))
    rows = c.fetchall()

    if rows != []: #if the returned rows are NOT empty
        errorlbl.config(text="Email already in use!") #...then print an error message
        x=1

对我来说重要的是运行第4行和第5行。选择数据,并将其放入名为“rows”的数组中。 到目前为止,在我的JS文件中,我有:

var db = new sqlite3.Database('users_db.db');
var stmt = db.prepare("SELECT * FROM users WHERE useremail=?");
stmt.run(email);

var rows = db.all(stmt);

但我认为这是错误的语法,并且无法在Google上的任何地方找到如何做到这一点。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我的解决方案涉及遵循文档中包含的语法。经过实验,我发现这有效:

var db = new sqlite3.Database('users_db.db');

db.all("SELECT * FROM users WHERE useremail=?", email, function(err, rows){

    if (rows != "undefined"){
        res.send("Email already exists!");
        return false; //returns false
    }else{
        return true; //if all is okay, return true
    }
})