Content

Nodejs?连接?mysql时报Error:?Cannot?enqueue?Query?after?fatal?error错误的处理办法(nodejs怎么连接mysql)没想到

文章摘要

这篇文章介绍了如何使用MySQL模块在Node.js中建立数据库连接,并实现了一个断线重连机制。文章详细描述了如何定义一个连接函数`handleDisconnection`,该函数负责处理数据库连接失败的情况。具体来说,当连接失败时,函数会在2秒后自动尝试重新连接。此外,文章还介绍了如何使用`db.querySync`方法进行查询操作,并处理了查询过程中可能的错误场景。整个代码展示了如何在Node.js中安全地管理MySQL数据库连接,确保数据操作的稳定性。

//导入mysql连接包 const mysql=require(‘mysql’); let dbconfig={ host: ‘db_host’, user: ‘db_user’, password: ‘db_pass’, database: ‘db_name’, debug: true }; function handleDisconnection() { db=mysql.createConnection(dbconfig); db.connect(function (err) { if (err) { console.log(‘db connect error:’ + err.message + “2秒后重连”); setTimeout(handleDisconnection, 2000); } }); db.on(‘error’, function (err) { console.log(err); if (err.code===’PROTOCOL_CONNECTION_LOST’) { console.log(‘db error执行重连:’ + err.message); handleDisconnection(); } else { throw err; } }); db.querySync=function(sql) { return new Promise(function(resolve, reject) { db.query(sql, function(error, results, fields) { if(error) reject(error); else resolve({results, fields}) }) }) }; return db; } //创建连接conn exports.db=handleDisconnection();