【发布时间】:2018-02-11 09:43:03
【问题描述】:
我在 Heroku 上部署了 NodeJS API 并尝试将其连接到 MySQL DB,因此我创建了一个 connectionPool 用于处理 ClearDB ignite 帐户(免费)上的连接,最多允许 10 个连接。
每次我对数据库执行查询时,它都会向堆栈添加一个新连接,直到达到 10 个连接并且应用程序崩溃。
我的代码如下:
连接工厂:
var mysql = require('mysql');
function createDBConnection() {
var conn = mysql.createPool({
host: 'xxx',
user: 'xxx',
password: 'xxx',
database: 'xxx'
});
return conn;
}
module.exports = function() {
return createDBConnection;
}
这是我的选择查询:
function Dao(connection) {
this._connection = connection;
}
Dao.prototype.findAll = function (callback) {
this._connection.query('SELECT * FROM table',
function(errors, results) {
callback(errors,results);
});
};
module.exports = function() {
return Dao;
}
最后是我用来称呼它的路线:
app.get('/products', function (req,res) {
var connection = app.persistence.connectionFactory();
var dao = new app.persistence.Dao(connection);
dao.findAll(function (err, result) {
res.format({
json: function () {
res.json(result);
}
});
});
});
我尝试将 createPool() 更改为 createConnection(),然后在每次查询后立即调用 .end()/.destroy() 函数,但它根本不起作用。
有什么提示吗?
【问题讨论】:
标签: mysql node.js heroku cleardb