Saltar al contenido

Intento conectar mi node.js a la base de datos Heroku PostgreSQL. Siguiendo el tutorial de Heroku Postgres

Solución:

Es problema de Heroku. La variable “process.env.DATABASE_URL” que le dicen que use en pg.connect no está funcionando.

Un simple

console.log(process.env.DATABASE_URL);

Mostrará que esta variable no está definida.

Hasta que Heroku ofrezca una solución, puede codificar la URL de conexión como primer argumento para pg.connect ().

Para encontrar sus credenciales, puede ir a la configuración de conexión del complemento PostgreSQL de su aplicación a través de http://heroku.com.

El nuevo método pg.connect se verá así

var connectionString = "postgres://*USERNAME*:*PASSWORD*@*HOST*:*PORT*/*DATABASE*"

pg.connect(connectionString, function(err, client, done) {
   client.query('SELECT * FROM your_table', function(err, result) {
      done();
      if(err) return console.error(err);
      console.log(result.rows);
   });
});

Si las respuestas anteriores son un poco cortas para alguien (lo hicieron para mí), intente agregar ?ssl=true al final de su variable de entorno DATABASE_URL. Crédito al autor de esta respuesta. La mejor de las suertes.

Puedes usar: heroku pg:info comando para enumerar todas sus bases de datos. Allí encontrará la URL de base de datos exacta que puede usar en su aplicación; debería ser algo así: HEROKU_POSTGRESQL_DBNAME_URL. Esta URL se puede utilizar en la aplicación node.js:

pg.connect(process.env.HEROKU_POSTGRESQL_DBNAME_URL, function(err, client, done) {
   client.query('SELECT * FROM your_table', function(err, result) {
      done();
      if(err) return console.error(err);
      console.log(result.rows);
   });
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *