2015-07-21 71 views
6

错误的含义是什么?节点JS Mysql PROTOCOL ENQUEUE致命错误

此代码适用于我的测试文件。

function handleDisconnect() { 
    objConn = mysql.createConnection(db_config); // Recreate the connection, since 
                // the old one cannot be reused. 
    objConn.connect(function(err) {     // The server is either down 
     if(err) {         // or restarting (takes a while sometimes). 
      console.log('error when connecting to db:', err.code); 
      setTimeout(handleDisconnect, 2000);  // We introduce a delay before attempting to reconnect, 
     }else{ 
      console.log('Connected to db!'); 
     }           // to avoid a hot loop, and to allow our node script to 
    });            // process asynchronous requests in the meantime. 
                // If you're also serving http, display a 503 error. 
    objConn.on('error', function(err) { 
     if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually 
      handleDisconnect();      // lost due to either server restart, or a 
     }else{ 
      throw err; 
     } 
    }); 
} 

handleDisconnect(); 
megaLoop(); 

function megaLoop(){ 
    objConn.query('SELECT u.`email` FROM `users` as u', function(err, rows) { 
     console.log(err); 
     console.log(rows); 
    }); 
    setTimeout(megaLoop, 100); 
} 

但是,当我在我的快速应用程序中使用函数,我得到的错误。

{ [Error: Cannot enqueue Query after fatal error.] code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR', fatal: false } 

所以,我有什么剂量错误的意思是什么?和方式剂量它在我的测试工作,而不是我的应用程序?

+0

请访问回答类似的问题http://stackoverflow.com/a/38418562/543087 – user5858

回答