Warning!!: The name of the package has been changed to
postgrejs(https://www.npmjs.com/package/postgrejs) and repository has been moved to (https://github.com/panates/postgrejs) Please consider to update dependencies in your package.json
Enterprise level PostgreSQL client for NodeJs
$ npm install postgresql-client --save
Please read :small_orange_diamond: DOCUMENTATION :small_orange_diamond: for detailed usage.
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();
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();
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
The table below lists builtin data type mappings.
| Posgtres type | JS type | Receive | Send |
|---|---|---|---|
| bool | boolean | text,binary | binary |
| int2 | number | text,binary | binary |
| int4 | number | text,binary | binary |
| int8 | BigInt | text,binary | binary |
| float4 | number | text,binary | binary |
| float8 | number | text,binary | binary |
| char | string | text,binary | binary |
| bpchar | string | text,binary | binary |
| varchar | string | text,binary | binary |
| date | Date | text,binary | binary |
| time | Date | text,binary | binary |
| timestamp | Date | text,binary | binary |
| timestamptz | Date | text,binary | binary |
| oid | number | text,binary | binary |
| bytea | Buffer | text,binary | binary |
| uuid | string | text,binary | binary |
| json | object | text,binary | binary |
| jsonb | object | text,binary | binary |
| xml | string | text,binary | binary |
| point | Point | text,binary | binary |
| circle | Circle | text,binary | binary |
| lseg | Rectangle | text,binary | binary |
| box | Rectangle | text,binary | binary |
| int2Vector | number[] | text,binary | binary |
| _bool | boolean[] | text,binary | binary |
| _int2 | number[] | text,binary | binary |
| _int4 | number[] | text,binary | binary |
| _int8 | BigInt[] | text,binary | binary |
| _float4 | number[] | text,binary | binary |
| _float8 | number[] | text,binary | binary |
| _char | string[] | text,binary | binary |
| _bpchar | string[] | text,binary | binary |
| _varchar | string[] | text,binary | binary |
| _date | Date[] | text,binary | binary |
| _time | Date[] | text,binary | binary |
| _timestamp | Date[] | text,binary | binary |
| _timestamptz | Date[] | text,binary | binary |
| _uuid | string[] | text,binary | binary |
| _oid | number[] | text,binary | binary |
| _bytea | Buffer[] | text,binary | binary |
| _json | object[] | text,binary | binary |
| _jsonb | object[] | text,binary | binary |
| _xml | string[] | text,binary | binary |
| _point | Point[] | text,binary | binary |
| _circle | Circle[] | text,binary | binary |
| _lseg | Rectangle[] | text,binary | binary |
| _box | Rectangle[] | text,binary | binary |
| _int2Vector | number[][] | text,binary | binary |
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.
postgresql-client is available under MIT license.