我已经用Node.js和mysql创建了一个api。我使用的是来自android的此api,但在该部分中没有问题。
经过多次调用,我收到“经典”错误ER_CON_COUNT_ERROR: Too many connections
,但我仅使用池res.locals.pool.query
的调用,据我所知,调用pool.query
自动关闭连接到服务器。
因此,我在查看正在获取的_allConnections : {1}
代码时添加了调试信息,以检查连接等的值,因为在我的代码中,我不使用其他任何东西来拥有多个打开的连接,但是经过了几个小时_allConnections
变成0
,我得到错误提示了吗?
我不是JS开发人员,所以我不确定自己做错了什么,但对我来说似乎还可以。
db.controller.js
var dbConfig = {
host: '*.*.*.*',
user: '********',
password: '*********',
database: '*********',
acquireTimeout: 1000000,
queueLimit : 0,
connectionLimit : 5
}
module.exports.initDB = function (req, res, next) {
res.locals = {
pool: mysql.createPool(dbConfig)
};
next();
};
apiCall
res.locals.pool.query("QUERY HERE", req.query.param_here, function (error, results) {
console.debug("\x1b[33m%s################### start connection info ###################");
console.debug("connectionLimit : {" + res.locals.pool.config.connectionLimit + "} ");
console.debug("_freeConnections : {" + res.locals.pool._freeConnections.length + "} ");
console.debug("_allConnections : {" + res.locals.pool._allConnections.length + "} ");
console.debug("_acquiringConnections : {" + res.locals.pool._acquiringConnections.length + "} ");
console.debug("################### end connection info ###################\x1b[0m");
global.handleResponse("call", res, error, results)
});