【问题标题】:JS node-mysql bools acting weirdJS node-mysql bools 行为怪异
【发布时间】:2012-04-12 23:19:22
【问题描述】:

我有这个函数,我需要返回 true 或 false。问题是,它的行为似乎不正确。如果它返回 false,它不会断开客户端,如果它返回 true,它仍然会执行“console.log('Disconnecting client...')” 我完全迷失了。 :( 这是针对 node.js mysql 和 socket.io 的

代码:

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
}

})
};

【问题讨论】:

    标签: javascript node.js socket.io node-mysql


    【解决方案1】:

    这是很常见的错误。您缺少异步编程的非常基本的概念 - 您必须将回调传递给您的 client_to_server_00 函数并在完成异步内容(在这种情况下为数据库连接)时调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 2020-05-09
      • 2015-07-24
      • 1970-01-01
      • 2018-05-15
      • 2023-04-08
      相关资源
      最近更新 更多