Conecto mi base de datos local PostgreSQL en el servidor Node.js usando pg .
Todo funcionó bien, pero de repente dejó de funcionar.
Este es mi código:
const {Pool} = require('pg') const connectionString = process.env.DATABASE_URL; const ssl = process.env.NODE_ENV == 'production' ? '?ssl=true' : ''; const pool = new Pool({ connectionString: connectionString + ssl }); const db = { pool: pool, test: async () => { try { console.log('before connection'); let result = await pool.query('SELECT $1::text as status', ['connected']); console.log('connected') return result.rows[0].status; } catch (error) { console.error('Unable to connect to the database:', error); return null; } } } module.exports = db;Aquí lo llamo:
const express = require('express') const Router = express.Router(); const db = require('./database') Router.get('/testdb', async (req, res) => { try { let result = await db.test(); res.status(200).send(result); } catch (error) { res.status(500).send(error); } }) Se atascó en pool.query . se registra 'antes de la conexión', no se arroja ningún error.
El mismo código funciona bien con mi base de datos remota y puedo conectar la base de datos local con pgAdmin.
Este fue un problema de incompatibilidad entre pg y la versión 14 de node.js. Consulte también los siguientes problemas de GitHub en los que se realizó un seguimiento y se solucionó:
tl;dr: actualice pg a una versión superior a 8.0.3 ( pg>=8.0.3 ).
Encontré mi problema en la versión del nodo; hace algunos días lo actualicé a 14.5.0 .
revíselo a 12.18.2 LTS resuelva el problema.