gpt4 book ai didi

node.js - 重试连接 postgres Nodejs

转载 作者:行者123 更新时间:2023-12-05 03:43:10 47 4
gpt4 key购买 nike

我正在为我的快速 Web 服务器使用 postgres 数据库。我正在使用“pg”库在此数据库上执行查询。

这是我的连接方法:

const db = new Client({
user: 'xxx',
host: 'xxx',
database: 'xxx',
password: 'xxx',
port: xxx,
})
db.connect(err => {
if (err) {
console.error('connection error', err.stack)
} else {
console.log('connected')
}

然后执行一个请求,我这样做:

db.query(MY_REQUEST, function (err, data) {
if (err) throw err;
res.render('hello/world', {
title: 'Hello',
data: data.rows
});
});`

一切都很完美。但是几分钟后没有使用我的网站,我与数据库的连接超时,我收到以下错误:

node:events:355
throw er; // Unhandled 'error' event
^
Error: Connection terminated unexpectedly
at Connection.<anonymous> (/usr/src/app/node_modules/pg/lib/client.js:132:73)
at Object.onceWrapper (node:events:484:28)
at Connection.emit (node:events:378:20)
at Socket.<anonymous> (/usr/src/app/node_modules/pg/lib/connection.js:58:12)
at Socket.emit (node:events:378:20)
at TCP.<anonymous> (node:net:665:12)
Emitted 'error' event on Client instance at:
at Client._handleErrorEvent (/usr/src/app/node_modules/pg/lib/client.js:319:10)
at Connection.<anonymous> (/usr/src/app/node_modules/pg/lib/client.js:149:16)
at Object.onceWrapper (node:events:484:28)
[... lines matching original stack trace ...]
at TCP.<anonymous> (node:net:665:12)

连接断开或请求失败时,如何自动重连?

最佳答案

您应该附加一个error-handler 以防止未处理的错误导致您的应用程序崩溃。很简单:

db.on('error', e => {
console.error('DB error', e);
});

至于为什么会发生错误,我们需要更多详细信息,看起来可能是由于空闲超时导致的连接重置?

关于node.js - 重试连接 postgres Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66888434/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com