使用池的node.js mysql中的错误处理和丢失连接
Posted
技术标签:
【中文标题】使用池的node.js mysql中的错误处理和丢失连接【英文标题】:Error handling and lost connection in node.js mysql using pool 【发布时间】:2018-10-18 19:52:30 【问题描述】:我正在使用 node.js npm 模块 mysql 来连接 MySQL 数据库。
我看到有可能使用:
pool.getConnection()、connection.query() 和 connection.release() 或 pool.query关于第二种情况,我有两个问题。
1) 在使用 pool.query 时出现错误、丢失连接是否有任何自动重新连接? (使用池时是否需要“处理断开连接”功能?
2) 使用第一种方法,我可以设置 connection.on('error', function()...)。在第二种情况下如何做到这一点? (pool.on('error'...) ?)
【问题讨论】:
【参考方案1】:1)如果我错了,请纠正我,但我认为在使用池查询时没有一种在断开连接时自动连接的方法。这是一个很好的代码设计,可以让我们知道错误,并让我们决定在断开连接时做什么。
2) 我们可以使用pool.getConnection((err, con) => )
这是我在运行查询之前用来检查连接的代码。希望对您有所帮助。
connect: function ()
return new Promise((resolve, reject) =>
let pool = Mysql.createPool(
connectionLimit: config.mysql.connectionLimit,
host: config.mysql.host,
user: config.mysql.user,
password: config.mysql.password,
database: config.mysql.database
);
pool.getConnection((err, con) =>
try
if (con)
con.release();
resolve("status":"success", "data":"MySQL connected.", "con":pool);
catch (err)
reject("status":"failed", "error":`MySQL error. $err`);
resolve("status":"failed", "error":"Error connecting to MySQL.");
);
);
【讨论】:
以上是关于使用池的node.js mysql中的错误处理和丢失连接的主要内容,如果未能解决你的问题,请参考以下文章