2017-09-15 4 views
0

変数expected_pa​​sswdは、con.query操作後にアクセスされません。宣言を私がアクセスできるようにするにはどうしたらいいですか?関数スコープ外の関数で操作を実行しているグローバル宣言された変数にアクセスできません

var uname = req.param('uname'); 
var passwd = req.param('passwd'); 
var expected_passwd=""; 
con.query("select password from signin where uname='"+uname+"'", function (err, result) 
{ 
    if (err){ throw err;} 
    expected_passwd=JSON.parse(JSON.stringify(result)); 
    expected_passwd=expected_passwd[0].password; 
}); 
console.log(expected_passwd); 
+2

コードでコールバック関数が呼び出されていないため、expected_pa​​sswdは空の文字列になります。 – spiritwalker

答えて

0

コールバック機能を使用してください。

function getPassword(callback) { 
    var req = Request(); // where does this come from? 
    var con = Connection(); // where does this come from? 
    var uname = req.param('uname'); 
    var passwd = req.param('passwd'); 
    var sql = "select password from signin where uname='" + uname + "'"; 
    con.query(sql, function(err, result) { 
    if (err) { 
     throw err; 
    } 
    var expected_passwd = result[0].password; 
    callback(expected_passwd); 
    }); 
} 

getPassword(function(pass) { 
    console.log(pass); // use the password here! 
}); 

コードで改善することができることはたくさんありますが、別の質問のために残しておきます。

関連する問題