@joeybaker/hapi-rethinkdb
v3.0.2
Published
Hapi (^8.0) plugin for rethinkdb native driver
Downloads
9
Maintainers
Readme
hapi-rethinkdb
Hapi (^8.0) plugin for rethinkdb native driver. This is a fork of @ghostbar's version that adds rethinkdb-init.
Table of Contents generated with DocToc
Install
npm i -S @joeybaker/hapi-rethinkdb
Usage
Registration
You can pass as options either an URL (all are optionals, defaults to: no password, localhost and ) or host
and port
. Obviously passing an URL is way more convenient (specially for 12factor-compliant apps).
import hapiRethinkdb from '@joeybaker/hapi-rethinkdb'
import Hapi from 'hapi'
const server = new Hapi.Server()
server.register({
register: hapiRethinkdb
, options: {
url: 'rethinkdb://:[email protected]:port/dbname'
table: {
name: 'example'
, indexes: 'name'
}
}
})
Access
The connection object returned by rethinkdb.connect
callback is exposed on server.plugins.rethinkdb.conn
. You can find the rethinkdb
library itself exposed on server.plugins.rethinkdb.r
. It's usually important to use library instance on the plugin instead of importing your own so that connections are valid.
From a handler you can use it like:
function handler (request, response) {
const {r, conn} = request.server.plugins.rethinkdb
r.table('example').run(conn, (err, cursor) => {
cursor.each(console.log.bind(console))
})
}
Options
<String>
url Required if host
and port
not set
Convenience method to set the rethinkdb connection. Takes the format: rethinkdb://:password@host:port/dbname
<String>
host Required if url
set
The rethinkdb host. Defaults to 127.0.0.1
<Number>
port Required if url
set
The rethinkdb port. Defaults to 28015
<String>
db
The db to use. If it doesn't exist, it will be created for you.
<String>
auth
The rethinkdb auth key.
<String or Object>
table OR <Array>
tables
Ensure tables and indexes exist. For full configuration see: rethinkdb-init
Tests
Tests are in tape.
npm test
will run the testsnpm run tdd
will run the tests on every file change.
Developing
To publish, run npm run release -- [{patch,minor,major}]
NOTE: you might need to sudo ln -s /usr/local/bin/node /usr/bin/node
to ensure node is in your path for the git hooks to work
Requirements
- npm > 2.0.0 So that passing args to a npm script will work.
npm i -g npm
- git > 1.8.3 So that
git push --follow-tags
will work.brew install git
License
ISC © Jose Luis Rivas and Joey Baker. A copy of the license can be found in the file LICENSE
.