nodeftpd的mysql用户身份验证

时间:2015-04-16 06:24:49

标签: mysql node.js asynchronous

我想使用nodeftpd和mysql身份验证,但问题是connection.query()是异步的,脚本在mysql返回结果之前完成。

虽然,我已经找到了一个解决方案,但这是一个黑客,而不是一个真正的解决方案,而且很难看。那么如何使用mysql在命令中进行身份验证:传递nodeftpd

所以更多的是如何正确地异步,可能!

conn.on('command:pass', function(pass, success, failure) {

    if(pass)
     con.query('select * from wp_users where user_login = ? and user_pass = ?',[username, pass], function(err, rows, fields){
        if(rows.length > 0  ){
            success();
            return;
        }else{
            failure();
            return;
        }
        console.log('yy');

    });
     console.log('xx');
     failure();
  });

1 个答案:

答案 0 :(得分:3)

conn.on('command:pass', function(pass, success, failure) {
var self = this;

    if(pass)
      this.validateUser(username,pass,function(res){
       if(res) { 
              success();
       } else {
              failure();
       }
   });
    return;
});

validateUser = function(username,pass,callback) {
con.query('select * from wp_users where user_login = ? and user_pass = ?',[username, pass], function(err, rows, fields){
        if(rows.length > 0  ){
            callback(true);
        }else{
    callback(false);
        }
    });
}
相关问题