Node.js MySQL : gestion efficace des erreurs de « connexion perdue »
Lorsque vous travaillez avec MySQL dans Node.js, vous pouvez rencontrer une erreur indiquant que le serveur a fermé la connexion. Ce problème se produit souvent en raison d'un arrêt de la connexion TCP par le serveur.
Comprendre l'erreur
L'erreur apparaît généralement comme :
Error: Connection lost: The server closed the connection. ...
Cela suggère que la connexion établie entre l'application Node.js et le serveur MySQL a été interrompue de manière inattendue.
Solution
Pour résoudre ce problème, vous pouvez utiliser un mécanisme de gestion de connexion pour vous reconnecter automatiquement lorsqu'une connexion est perdue. Voici un extrait de code qui montre comment gérer les déconnexions du serveur :
var db_config = { host: 'localhost', user: 'root', password: '', database: 'example' }; var connection; function handleDisconnect() { connection = mysql.createConnection(db_config); // Recreate the connection connection.connect(function(err) { if (err) { console.log('error when connecting to db:', err); setTimeout(handleDisconnect, 2000); // Delay before reconnecting } }); connection.on('error', function(err) { console.log('db error', err); if (err.code === 'PROTOCOL_CONNECTION_LOST') { // Lost connection handleDisconnect(); } else { throw err; } }); } handleDisconnect();
Analyse
Supplémentaire Notes
La fonction handleDisconnect() peut être invoquée manuellement ou automatiquement lorsque la tentative de connexion initiale échoue. Cela garantit que l'application peut continuer à fonctionner même si la connexion est perdue de manière inattendue.
En implémentant ce mécanisme de gestion des connexions, vous pouvez empêcher votre application Node.js/MySQL de planter en raison d'une perte de connexion. Cela peut améliorer considérablement la fiabilité et la stabilité de votre projet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!