pg-cr-layer

2.0.21 • Public • Published

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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.0.21
    4
    • latest

Version History

Package Sidebar

Install

npm i pg-cr-layer

Weekly Downloads

8

Version

2.0.21

License

MIT

Unpacked Size

12.1 kB

Total Files

4

Last publish

Collaborators

  • andrglo