0

それはfalseに変わりません!! パスワードの値をfalseに変更する必要があるのを助けてください

//password check
{

 connection.connect(function(){
    connection.query('select * from rencho2.user',function(err,results){ 
        if(results[0].passwd==p){
            console.log("correct");
        else { 
               global.verify="false";
           console.log("Incorrect. "); //here its false                             
        }                                 
         //here its false
   }); 
                //here it becomes true -- why??

    send = { 
        "UserName": body.UserName,
        "Password": global.verify
    }
    body1=JSON.stringify(send);
});

}); 
4

2 に答える 2

2

非同期コードと同期コードを扱っています。外側のコードが完了したconnection.queryに実行されます。その点だけです、です。それ以前は、へのコールバックがまだ実行されていないためです。コールバック内から必要なことを行う必要があります。global.verifyfalseglobal.verifytrueconnection.query

connection.query('select * from rencho2.user',function(err,results){ 
    if(results[0].passwd==p) {
        console.log("correct");
    } else { 
        global.verify="false";
        console.log("Incorrect. "); //here its false                             
    }                                 

    send = { 
        "UserName": body.UserName,
        "Password": global.verify
    };

    body1 = JSON.stringify(send);

    //do what you need with body1  
});
于 2013-10-29T17:21:17.997 に答える