rpool

1.0.1 • Public • Published

Build Status NPM Version js-standard-style

rpool

RethinkDB connection pool.

Installation

$ npm install --save rpool

API

Create pool

rpool(r, dbOptions, poolOptions) -> Pool

  • r - RethinkDB reference
  • dbOptions | dbOptions[] - RethinkDB options
    • url: Connection string/array of strings. If present will silentry rewrite connections options(host, port, etc.)
    • host: the host to connect to (default localhost).
    • port: the port to connect on (default 28015).
    • db: the default database (default test).
    • See RethinkDB docs for additional options.
  • poolOptions - Pool options
    • min: minimum number of connections to keep in pool at any given time. If this is set >= max, the pool will silently set the min to equal max. (default 1)
    • max: maximum number of connections. (default 10)
    • testOnBorrow: should the pool validate resources before giving them to clients. (default true)
    • acquireTimeoutMillis: max milliseconds an acquire call will wait for a resource before timing out. (default 10 seconds), if supplied should non-zero positive integer.
    • See generic-pool docs.

Example:

const r = require('rethinkdb')
const rpool = require('rpool')
 
const pool = rpool(r, 'rethinkdb://localhost:32779/foo')
const pool = rpool(r, ['rethinkdb://portal-1:32779/foo', 'rethinkdb://portal-2:32779/foo'])
const pool = rpool(r, 'rethinkdb://localhost:32779/foo', { max: 100, acquireTimeoutMillis: 5000 })
const pool = rpool(r, { url: 'rethinkdb://localhost:32779', db: 'bar' }, { max: 100 })
const pool = rpool(r, { host: 'localhost', port: '32779', db: 'foo' }, { max: 10 })
const pool = rpool(r, [
  { url: 'rethinkdb://portal-1:32779/bar',' }
  { url: 'rethinkdb://portal-2:32779', db: 'bar' }
], { max: 100 })

Acquire / release connections

pool.acquire(priority) -> Promise<#{connection, release}>

  • priority: optional priority.

Example:

const r = require('rethinkdb')
const rpool = require('rpool')
 
const pool = rpool(r, 'rethinkdb://localhost:32779/foo')
 
pool.acquire().then(({ connection, release }) => {
  r.table('users')
    .run(connection)
    .then((cursor) => {
      console.log('Cursor:', cursor)
    })
    .catch((err) => {
      console.log(err)
    })
    .then(release)
})

Run queries

pool.run(query, options) -> Promise<QueryResult>

  • query: RethinkDB query or query builder function.
  • options: Run option.

⚠️ Note: All cursors are automatically converted into arrays.

Example:

const r = require('rethinkdb')
const rpool = require('rpool')
 
const pool = rpool(r, 'rethinkdb://localhost:32779/foo')
 
pool.run(r.table('users')).then((users) => {
  console.log('Users:', users)
})
 
pool.run((r) => r.table('users')).then((users) => {
  console.log('Users:', users)
})
 
const deleteQuery = r.table('users').get('user_id').delete()
pool.run(deleteQuery)

Package Sidebar

Install

npm i rpool

Weekly Downloads

4

Version

1.0.1

License

MIT

Unpacked Size

8.64 kB

Total Files

8

Last publish

Collaborators

  • dotcypress