Stijn Klijn
Stijn Klijn

Reputation: 55

How to connect to Heroku PostgresQL database from Express?

I am trying to deploy a PERN app to Heroku. I created a Heroku Postgres database and deployed my React frontend - Node/Express backend app to Heroku.

How do I connect to the database from within my Express code? I have been using npm pg so far when the app was still local.

I can't seem to find any information about this on the internet...

Upvotes: 1

Views: 710

Answers (1)

silencedogood
silencedogood

Reputation: 3299

You'll need to import a Pool from the postgre module, then set the connection string. It should look something like this:

const {Pool} = require('pg');

const connectStr = process.env.DATABASE_URL;
const pool = new Pool({
    connectionString: connectStr,
    ssl: true
});

Then you can query the database with something akin to this:

exports.dbAction = function(req, res) {

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

pool.query("select * from exampleTable", (err, 
results) => {
        if (err) {
            console.log(err);
            throw err;
        }
    res.json(results.rows);
    });
  
}

process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; instructs Node to allow untrusted certificates (untrusted = not verified by a certificate authority). It's not a recommended setting in production mode. However, while in development, it's a handy workaround.

Upvotes: 1

Related Questions