2012-04-12 2 views
0

J'ai cette fonction que j'ai besoin de retourner vrai ou faux. Le problème est, il ne semble pas se comporter correctement. Si elle renvoie false, elle ne déconnecte pas le client, et si elle renvoie true, elle le fait toujours "console.log ('Déconnexion du client ...')" Je suis complètement perdu. :(Ceci est pour Node.js mysql et Socket.IOJS noeud-mysql bools agissant bizarre

CODE:

if(!client_to_server_00(header,data,len)){ 
    // should send the server a packet to terminate the connection on 
       their end... 
    // It should send 0x00 SERVER->CLIENT (will implement later) 
    console.log('Disconnecting client...'); // This always shows no matter what 
    client.emit('disconnect'); // **This does not work! 
}else{ 
    console.log('ID VERIFIED! WELCOME!'); 
} 

======================== ============================================= . ========

// LOGIN INFORMATION 
function client_to_server_00(header, data, len){ 
// We are already connected to the database 
var z = decodeFromHex(data); // find the username 
z = returnvalue(z,1,len);  // the code was a little off (ill fix it later) 
console.log(z);     // make sure we have this correct 

// In this example. The database returns 'oh' And z = 'oh' 

client.query('USE '+TEST_DATABASE); 

client.query(
'SELECT * FROM '+TEST_TABLE, 
function selectCb(err, results, fields) { 
if (err) { 
    throw err; 
} 
var first = results[0]; 
console.log('USRNAME: ['+first['name']+']'); // Make sure we have it 

if(first['name'] == z){ 
console.log('Correct'); 
return true;     // I need client_to_server_00 function to return true if correct 
}else{ 
console.log('Incorrect'); 
return false;     // I need client_to_server_00 function to return false if incorrect 
} 

}) 
}; 

Répondre

1

il est très fréquent erreur vous manque concept de base de la programmation async - vous devez passer le rappel à votre fonction client_to_server_00 et l'appeler lorsque vous avez terminé avec des trucs async (connexion à la base de données dans ce cas)