Lightweight Database Handler for PostgreSQL writer upon node-postgres and bluebird.
Why?
Because node-postgres is too low level and is not funny to write deeply nested functions for commons task such as create transactions.
Features
- Promises/A+ style by bluebird.
- Full Documented API.
- Full Tested API.
- Made with simple and clean code.
- Extra utils for sanitization and sql creation.
Installation
The latest stable version:
$ npm install dbh-pg
It is recommended that you also install bluebird for use Promise.using
:
$ npm install bluebird
Usage
- Require the dependencies.
- Instantiate the DBH (Internally creates a connection pool).
- Use
Promise.using
(or the shorhandDBH.using
) to get a connection from the pool and then auto release it. Is important that the callback function returns the connection promise.
// require dependencesvar DBH = Promise = using = Promiseusing // instantiate the databasevar db = 'postgres://postgres@localhost/db2test' // automatic release the connection to pool
Transactions
- Call
conn.begin
to start the transaction- Use the transaction
- Explicit call
conn.commit
, else auto rollback is applied before release the connection to the pool.
// send 10 coins from user_id=3 to user_id=4;
conn.begin
conn.exec
conn.commit
Parallel task
// print array of data (from query) and the total items in the table
Using Shorthands
// shorthands are static methods in the DBH 'class'.// This is the same example used in Transaction
Using objects as replacement
// This is the first example, note that// instead of $1 this uses $id
Prepared Statements
// DBH.prepare receives a SQL statement and return function that receives the// replacement as an array of params.// Note that DBH.prepare can be used outside the 'using'.var prepared = DBH
Contributing
We ♥ contributions
Please create a (tested) pull request :)