On April 1, 2021, we are moving all of our QuotaGuard Support Documentation to 


https://quotaguard.github.io/qg-docs/


 Please Update Your Support Bookmarks


 Documentation for this article will be maintained at 


https://quotaguard.github.io/qg-docs/nodejs-postgresql.html 


Please click on the above link to ensure you are reading 

the most recent and updated documentation.


You can route all database traffic via a Static IP in Node.js using QuotaGuard Static. Currently there is a limitation in that you can’t use the built in connection pooling so this is not recommended for high traffic applications.

This example provided by Ladislav Prskavec.

var pg = require('pg'),
    url = require('url'),
    SocksConnection = require('socksjs');

var db = url.parse(process.env.REDSHIFT_CONN_STRING),
    dbAuth = db.auth,
    dbUsername = dbAuth.split(':')[0],
    dbPassword = dbAuth.split(':')[1],
    dbName = db.pathname.replace('/', '');

var proxy = url.parse(process.env.QUOTAGUARDSTATIC_URL),
    auth = proxy.auth,
    username = auth.split(':')[0],
    pass = auth.split(':')[1];

var sock_options = {
  host: proxy.hostname,
  port: 1080,
  user: username,
  pass: pass
};

var remote_options = {
  host: db.hostname,
  port: db.port
};

var sockConn = new SocksConnection(remote_options, sock_options);

var config = {
  user: dbUsername,
  database: dbName,
  password: dbPassword,
  stream: sockConn
};

var client = new pg.Client(config);

// connect to our database
client.connect(function (err) {
  if (err) throw err;

  // execute a query on our database
  client.query('SELECT $1::text as name', ['john doe'], function (err, result) {
    if (err) throw err;

    // just print the result to the console
    console.log(result.rows[0]); // outputs: { name: 'apiary' }

    // disconnect the client
    client.end(function (err) {
      if (err) throw err;
    });
  });
});

If you have questions, or if this solution doesn’t work or fit your use case, please reach out to us at Support so we can help figure it out with you.


Working with sensitive data, like HIPAA, Financial, or Personally Identifiable Information (PII)? 
    Then you will want to check out our QuotaGuard Shield solution, it's the same as QuotaGuard Static, but with stronger end to end security for your requests. We can also help migrate current Static customers to Shield for free, just reach out to us at Support to request assistance.