Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何保持PostgreSQL连接打开?_Javascript_Node.js_Postgresql - Fatal编程技术网

Javascript 如何保持PostgreSQL连接打开?

Javascript 如何保持PostgreSQL连接打开?,javascript,node.js,postgresql,Javascript,Node.js,Postgresql,因此,我基本上是这样创建我的db客户端的: client = new pg.Client(conString); client.connect(); 但在数据库上运行一段时间后,客户端可能会断开连接,并出现以下错误: "Error: read ECONNRESET" 我试着这样做来保持它的开放性: db.client.on('error', function(e){ db.client.connect(); }); 但这不起作用,我还是会出错。有人曾经处理过这个问题

因此,我基本上是这样创建我的db客户端的:

client = new pg.Client(conString);
client.connect();
但在数据库上运行一段时间后,客户端可能会断开连接,并出现以下错误:

"Error: read ECONNRESET"
我试着这样做来保持它的开放性:

db.client.on('error', function(e){        
    db.client.connect();
});

但这不起作用,我还是会出错。有人曾经处理过这个问题,并且知道如何解决吗?

听起来您可能遇到了由于NAT连接跟踪表或类似表过期而导致连接断开的问题

启用TCP keepalives,或者如果您的客户端支持它,则在客户端启用


如果不能使用TCP keepalives,则可以改为发送空查询,即将空字符串作为查询发送。这在PostgreSQL中是有效和合法的,将强制客户端和服务器之间进行往返,但不会给日志添加任何干扰。

您不能只使用node postgres提供的默认连接池吗?我同时使用这两种连接池,但您不能使用该池进行事务处理。您的解决方案是使用适当的连接池,特别是pgbouncer或pgpool II。