@exiasr/egg-pg

PostgreSQL plugin which supports pooling for egg

Usage no npm install needed!

<script type="module">
  import exiasrEggPg from 'https://cdn.skypack.dev/@exiasr/egg-pg';
</script>

README

egg-pg

dependencies Status

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

// {app_root}/config/plugin.js
exports.pg = {
  enable: true,
  package: '@exiasr/egg-pg',
};

Sample

// {app_root}/config/config.default.js
exports.pg = {
  user: 'root',
  host: 'localhost',
  database: 'compose',
  password: 'supersecure',
  port: '27017',
};

Single database instance

// {app_root}/config/config.default.js
exports.pg = {
  connectionString: 'postgres://<user>:<password>@<host>:<port>/<database>',
}

Multiple database instance

// {app_root}/config/config.default.js
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