Skip to content
A postgres interface layer for common requests
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
src
test
.editorconfig
.eslintrc.js
.gitignore
.prettierrc
LICENSE
README.md
docker-compose.yml
docker_fish_history
package.json
yarn.lock

README.md

pg-cr-layer NPM version Dependency Status CircleCI Coverage percentage

A postgres interface layer for common requests. It uses pg to connect and wraps it in a tiny layer using ES2015 promises with the goal to be simpler and compatible with mssql via mssql-cr-layer

Install

$ npm install --save pg-cr-layer

Usage

var pgCrLayer = require('pg-cr-layer');

var config = {
  user: 'me',
  password: 'my password',
  host: 'localhost',
  port: 5432,
  pool: {
    max: 25,
    idleTimeout: 30000
  }
};

var layer = new PgCrLayer(config)

layer.connect()
  .then(function() {
    return layer.execute('CREATE TABLE products ( ' +
      'product_no integer, ' +
      'name varchar(10), ' +
      'price numeric(12,2) )');
  })
  .then(function() {
    return layer.transaction(function(t) {
      return layer
	      .execute('INSERT INTO products VALUES (1, \'Cheese\', 9.99)', null, {transaction: t})
          .then(function() {
            return layer.execute('INSERT INTO products VALUES (2, \'Chicken\', 19.99)', null, {transaction: t})
          })
		  .then(function() {
        return layer
          .execute('INSERT INTO products VALUES ($1, $2, $3)', [3, 'Duck', 0.99], {transaction: t})
       });
     })
  })
  .then(function() {
    return layer.query('SELECT * FROM products WHERE product_no=@product_no',
      {product_no: {value: 1, type: 'integer'}}) // or just {product_no: 1}
    .then(function(recordset) {
      console.log(recordset[0]); // => { product_no: 1, name: 'Cheese', price: '9.99' }
    })
  })
  .then(function() {
    return layer.close();
  })
  .catch(function(error) {
	  console.log(error);
  });

License

MIT © Andre Gloria

You can’t perform that action at this time.