Postgresql+Node.js查询在几次尝试后开始失败
Postgresql+Node.js queries start failing after a few tries
我有一个node.js应用程序,在Heroku上运行一个postgresql数据库,由于某种原因,select
函数似乎中断并开始失败,经过许多成功的尝试,似乎没有任何理由。
示例代码:
pg.connect(database_url, function(err, client) {
if(client) {
var date = new Date();
var query = client.query('SELECT * FROM accounts',function(err, result) {
if(!err) {
res.send(JSON.stringify(result.rows));
accounts = JSON.stringify(result.rows);
} else {
res.send('failed');
}
});
} else {
res.send(JSON.stringify(err));
}
});
上面的代码完美地工作了大约10次,然后不知怎么的就坏了。
如何解决这个问题?
如果它工作了10次,在第11次失败,那么很可能是因为连接池已经用完了。
在完成请求后,您应该在代码中调用done
,将数据库连接发送回池。
pg.connect(database_url, function(err, client, done) {
if(client) {
var date = new Date();
var query = client.query('SELECT * FROM accounts',function(err, result) {
if(!err) {
res.send(JSON.stringify(result.rows));
accounts = JSON.stringify(result.rows);
} else {
res.send('failed');
}
done(); // call done to close the conection
});
} else {
res.send(JSON.stringify(err));
}
});
参见connect
的文档
相关文章:
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- JS重试函数几次,看看它是否返回true
- 当我触发一个事件时,它会被触发几次,而不是在jQuery中的输入时触发一次
- 如果我刷新几次,为什么我的应用程序会在Chrome中崩溃
- Jquery 动画在单击几次后消失
- 在javascript中使用变量进行循环几次
- 为什么在 IIS7 中托管 MVC3 项目时,我的 AJAX 加载第一次失败
- 单击按钮时加载 jqGrid,但第二次失败
- Javascript Ajax在几次迭代后就停止在Chrome中工作了
- Masonry在几次调整大小之前无法正确显示图像
- 经过几次清理尝试后,主干仍在泄漏内存
- 我的ASP.NET页面怎么能从客户端代码到服务器代码来回几次呢
- 每隔x秒重复几次触发器('click')功能
- live()、delegate()和on()在使用jQuery发出几次ajax请求后停止工作
- 旋转木马javascript几次
- 对同一元素调用Mustache两次失败
- 重新加载几次后,时间和日期消失
- Javascript窗口确认弹出几次
- 运行几次setInterval,然后暂停几秒钟
- Postgresql+Node.js查询在几次尝试后开始失败