node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »



A lightweight, promise-based interface that brings ease to postgres. Postgrease is a wrapper around the node-postgres module.


npm install --save postgrease


Postgrease takes whatever you would use to initialize node-postgres: this can be a connection string, or a config object.

var db = require('postgrease');
var dbconfig = {
  host: 'localhost',
  database: 'example',
  user: 'notduncansmith',
  port: '5432',
  password: 'mypassword'
var connstring = 'postgres://notduncansmith:mypassword@localhost:5432/example';
// db.configure(connstring); 


Important Notes:

  • All Postgrease methods return promises

  • All methods use parameterized queries


This is a basic promise wrapper around pg's client.query() method. It requires one parameter, sql, the SQL string to execute.

If you want to make a parameterized query, you can also pass a second argument, params, which should be an array containing the values to be passed.

db.query('SELECT * FROM users WHERE username = ?', ['notduncansmith'])
.then(function(results) {


This is a convenience method for selecting records from a database by their id. It takes an options object with the following properties:

  • params: an array of ids to select by (you need to use an array, even if you only have one id)

  • fields: an array of fields to select (you can select * by setting fields to ['*'])

  • table: the name of the table to run this query against

var opts = {
  ids: ['1','2','3'],
  fields: ['name','email'],
  table: 'users'
.then(function(results) {


This is like the select method, except you pass it a field to select on.

var opts = {
  params: ['notduncansmith'],
  fields: ['name', 'email'],
  searchBy: 'username',
  table: 'users'
.then(function(results) {


This is a convenience method for returning all records from a table. It takes a single parameter, the name of the table you want to select from.

db.selectAll('users').then(function(results) {


This method allows you to insert an object into a table. It takes two parameters, the object and the table name.

var duncan = {
  username: 'notduncansmith',
  name: 'Duncan Smith',
  email: ''
db.insert(duncan, 'users').then(function(results){

MIT license, see LICENSE.txt for details.