我有一个我写过的网站,它从Restful网络服务中获取数据。 Restful Web服务使用node-mysql从node.js和MySQL运行。我遇到的问题是连接耗尽。例如,我的默认页面会执行一系列查找以获取数据。在该页面的第9次刷新时,我对Restful API的一次查找引发了此错误“无连接可用。”
以下是Restful API方面的构建方式:
在server.js中:
var db = require('mysql');
var db_pool = db.createPool(
{
host : 'localhost',
connectionLimit: 100,
supportBigNumbers: true,
waitForConnections: false
});
setRoutes(server, db_pool, passport, LocalStrategy, jwt, tokenSecret, bcrypt);
在router.js中:
setRoutes = function(server, connectionPool, passport, LocalStrategy, jwt, tokenSecret, bcrypt)
{
require('./lib/places.js');
place.connectionPool = connectionPool;
}
server.get('api/place/:id', function(request, response)
{
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "X-Requested-With");
place.get(request.params.id, function(err, data)
{
response.send(data);
next();
});
});
最后,在places.js中:
place.connectionPool = null;
place.get = function(id, callback)
{
place.connectionPool.getConnection(function(error, connection)
{
var query = "select myColumn from myTable";
connection.query
(
query,
function (queryError, rows, fields)
{
try {connection.release();} catch(e){};
if (queryError)
{
console.log(JSON.stringify(queryError));
return (callback(null, queryError));
}
return (callback(null, rows));
}
);
});
}
为网站实施node-mysql和连接池的最佳做法是什么?
谢谢!
答案 0 :(得分:0)
解决了连接问题 - 我没有在我正在进行回调的所有地方发布连接。