Hapi (>=8.0) plugin for rethinkdb
native driver.
npm install --save rethinkdb hapi-rethinkdb
You can pass as options either an URL or host
and port
. Obviously passing an URL is way more convenient (specially for 12factor-compliant apps).
var Hapi = require('hapi');
var server = new Hapi.Server();
server.register({
register: require('hapi-rethinkdb'),
options: { url: 'rethinkdb://:[email protected]:port/dbname' }
}, function (err) {
if (err) console.error(err);
});
url
: the URL of your RethinkDB instance in formrethinkdb://[email protected]:port/dbname
, default torethinkdb://localhost:28015/test
or
host
: the hostname of your RethinkDB instance, default tolocalhost
port
: the port of your RethinkDB instance, default to28015
db
: the name of your RethinkDB database, default totest
password
: the authentication key to access your RethinkDB, defaults to no password
The connection object returned by rethinkdb.connect
callback is exposed on server.plugins['hapi-rethinkdb'].connection
and binded to the context on routes and extensions as this.rethinkdbConn
. You can find the rethinkdb
library itself exposed on server.plugins['hapi-rethinkdb'].library
and server.plugins['hapi-rethinkdb'].rethinkdb
or binded to the context on routes and extensions as this.rethinkdb
.
From a handler you can use it like:
function handler (request, response) {
var r = request.server.plugins['hapi-rethinkdb'].rethinkdb;
// r === this.rethinkdb;
var conn = request.server.plugins['hapi-rethinkdb'].connection;
// conn === this.rethinkdbConn;
r.table('example').run(conn, function (err, cursor) {
cursor.each(console.log);
});
}
Licensed under the terms of the ISC. A copy of the license can be found in the file LICENSE
.
© 2015, Jose-Luis Rivas <[email protected]>