我想使用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();
});
答案 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);
}
});
}