Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

590
Visualizações
Vuelva a intentar la conexión postgres Nodejs

Estoy usando una base de datos postgres para mi servidor web express. Estoy usando la biblioteca 'pg' para ejecutar consultas en esta base de datos.

Aquí está mi método de conexión:

 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') }

Luego, para ejecutar una solicitud, hago esto:

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

Todo funciona perfectamente. Pero después de varios minutos sin usar mi sitio web, mi conexión a la base de datos se agota y aparece el siguiente error:

 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)

¿Cómo podría hacer para volver a conectarme automáticamente cuando se corta la conexión o cuando falla una solicitud?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Debe adjuntar un controlador de error para evitar que el error no controlado bloquee su aplicación. Es tan simple como:

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

En cuanto a por qué ocurre el error, necesitamos más detalles, ¿parece que podría ser un restablecimiento de la conexión debido a un tiempo de inactividad?

over 4 years ago · Santiago Trujillo Relatório

0

Puede crear una función para controlar si está conectado a la base de datos o no, antes de continuar con su función principal.

Cree una función para controlar database connection status de datos, reconnecting , etc. y antes de ejecutar una función relacionada con la base de datos, primero inicie esa función intermedia y espere el resultado, después de eso puede continuar usando la base de datos nuevamente.

Si lo desea (que debería ser la forma preferida en su mayoría), cree esa middle function as an async function y return a promise , cuando use esa función, wait for that function .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda