【发布时间】:2017-05-08 00:40:26
【问题描述】:
我已经尝试了很长时间自己解决这个问题,但找不到适合我的问题的解决方案。
我有这个方法:
handle_database = function(callback, req, res) {
pool.getConnection(function(err,connection){
if (err) {
res.json({"code" : 100, "status" : "Error in connection database"});
return;
}
connection.query("select * from `atable`",function(err,rows){
connection.release();
if(!err) {
callback(rows);
}
});
connection.on('error', function(err) {
res.json({"code" : 100, "status" : "Error in connection database"});
return;
});
});
}
这个方法在我的routes.js中是这样使用的:
router.get('/', function(req, res){
db.getUsers(function (data) {
res.render('pages/index',{users: data, title: 'title'});
}, req, res);
});
当我连续刷新此页面 11 次时,我收到以下警告:
(node:11780) 警告:检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误侦听器。使用emitter.setMaxListeners() 增加限制
但我找不到如何解决这个问题,或者只是将限制设置为 0 是一个聪明的想法?
【问题讨论】:
-
你用什么来连接数据库和管理池?
-
var pool = mysql.createPool({ connectionLimit : 10, host : 'localhost', user : 'root', password : 'pw', database : 'db', debug: false, }); -
那是什么插件? node中有几十个库可以访问数据库。你用 mysqljs/mysql 吗?
-
我使用的插件是:Mysql 2.12.0
标签: javascript node.js memory-leaks database-connection