2015-07-21 14 views
6

Che dose significa l'errore?Nodo JS Mysql PROTOCOL ENQUEUE DOPO ERRORE FATALE

Questo codice funziona nel mio file di test.

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); 
} 

Ma quando uso la funzione nella mia App Express ottengo l'errore.

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

Quindi la domanda che ho che cosa significa l'errore? E come funziona la dose nel mio test e non nella mia app?

+0

Si prega di visitare risposta alla domanda simile http://stackoverflow.com/a/38418562/543087 – user5858

risposta