postgresql-client v2.11.0
postgresql-client
Enterprise level PostgreSQL client for NodeJs
Library
- Pure JavaScript library completely written in TypeScript
- Works with both CommonJS and ESM module systems
- Well tested
- Strictly typed
- Asynchronous Promise based api
Features
- Both single connection and advanced pooling support
- Full binary wire protocol support for all data types
- Named Prepared Statements
- Cursors with fast double-link cache
- High level implementation for notifications (LISTEN/NOTIFY)
- Extensible data-types and type mapping
- Bind parameters with OID mappings
- Multidimensional arrays with fast binary encoding/decoding
- Low memory utilization and boosted performance with Shared Buffers
- Supports Clear text, MD5 and SASL password algorithms
- Can return both array and object rows
- Auto disposal with "using" syntax (TC30 Explicit Resource Management)
Installation
$ npm install postgresql-client --save
Documentation
Please read :small_orange_diamond: DOCUMENTATION :small_orange_diamond: for detailed usage.
Example usage
Establish a single connection, execute a simple query
import {Connection} from 'postgresql-client';
// Create connection
const connection = new Connection('postgres://localhost');
// Connect to database server
await connection.connect();
// Execute query and fetch rows
const result = await connection.query(
'select * from cities where name like $1',
{params: ['%york%']});
const rows: any[] = result.rows;
// Do what ever you want with rows
// Disconnect from server
await connection.close();
Establish a pooled connection, create a cursor
import {Pool} from 'postgresql-client';
// Create connection pool
const db = new Pool({
host: 'postgres://localhost',
pool: {
min: 1,
max: 10,
idleTimeoutMillis: 5000
}
});
// Execute query and fetch cursor
const result = await db.query(
'select * from cities where name like $1',
{params: ['%york%'], cursor: true});
// Walk through the cursor, and do whatever you want with fetched rows
const cursor = result.cursor;
let row;
while ((row = await cursor.next())) {
console.log(row);
}
// Close cursor, (Send connection back to the pool)
await cursor.close();
// Disconnect all connections and shutdown pool
await db.close();
Using prepared statements
import {DataTypeOIDs} from 'postgresql-client';
// .....
const statement = await connection.prepare(
'insert into my_table(id, name) values ($1, $2)', {
paramTypes: [DataTypeOIDs.Int4, DataTypeOIDs.Varchar]
});
for (let i = 0; i < 100; i++) {
await statement.execute({params: [i, ('name' + i)]});
}
await statement.close(); // When you done, close the statement to relase resources
Check DOCUMENTATION for other examples.
Type mappings
The table below lists builtin data type mappings.
Support
You can report bugs and discuss features on the GitHub issues page When you open an issue please provide version of NodeJS and PostgreSQL server.
Node Compatibility
node >= 14.x
License
postgresql-client is available under MIT license.
9 days ago
10 days ago
2 months ago
4 months ago
4 months ago
4 months ago
4 months ago
7 months ago
7 months ago
6 months ago
6 months ago
7 months ago
7 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago