【问题标题】:PostgreSQL slowness in Node.jsNode.js 中的 PostgreSQL 缓慢
【发布时间】:2014-11-14 19:37:33
【问题描述】:

我需要对用户进行身份验证,所以我调用了这个函数:

db.authenticate = function(username,password)
{
    var query = this.query("SELECT * FROM users WHERE username = '"+username.toLowerCase()+"' AND password = crypt('"+password+"',password);");
    var found = false;
    query.on('row', function(row) {
      found = true;
      console.log("Found:",row.username);
    });       
    if(found){return true;}else{return false;}
}

问题是,该函数不会等待 query.on('row') 完成并返回 false ..

有什么办法解决这个问题吗?

【问题讨论】:

    标签: node.js postgresql


    【解决方案1】:

    由于它是一个异步函数,您需要从回调中获取结果。

    db.authenticate = function(username, password, callback) {
        var query = this.query("SELECT * FROM users WHERE username = '" + username.toLowerCase() + "' AND password = crypt('" + password + "',password);");
        query.on('row', function(row) {
            console.log("Found:", row.username);
            return callback(true);
        });
        callback(false);
    }
    

    那么你可以这样称呼它:

    db.authenticate(username, password, function (isAuthenticated) {
        console.log(isAuthenticated); //Will be either true or false.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 2020-10-04
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多