egg-pg

PostgreSQL plugin which supports pooling for egg.
This plugin exposes the Pool object from node-postgres at app.pg
.
Latest version of node-postgres: 7.10.0
Install
npm i @exiasr/egg-pg
yarn add @exiasr/egg-pg
Configuration
Enable plugin
exports.pg = {
enable: true,
package: '@exiasr/egg-pg',
};
Sample
exports.pg = {
user: 'root',
host: 'localhost',
database: 'compose',
password: 'supersecure',
port: '27017',
};
Single database instance
exports.pg = {
connectionString: 'postgres://<user>:<password>@<host>:<port>/<database>',
}
Multiple database instance
exports.pg = {
clients: {
client1: {
connectionString: 'postgres://root:supersecure@localhost:27017/compose',
},
client2: {
connectionString: 'postgres://root:supersecure@localhost:27018/compose',
},
},
};
see config/config.default.js for more detail.
Usage
Single database instance
const { app } = this;
const pool = app.pg;
const { rows } = await pool.query('SELECT NOW()');
Multiple database instance
const { app } = this;
const pool = app.pg.get('<client_name>');
const { rows } = await pool.query('SELECT NOW()');
License
MIT