Skip to content

ghostbar/hapi-rethinkdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hapi-rethinkdb

Hapi (>=8.0) plugin for rethinkdb native driver.

Install hapi-rethinkdb

npm install --save rethinkdb hapi-rethinkdb

Register plugin

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);
    });
Options
  • url: the URL of your RethinkDB instance in form rethinkdb://[email protected]:port/dbname, default to rethinkdb://localhost:28015/test

or

  • host: the hostname of your RethinkDB instance, default to localhost
  • port: the port of your RethinkDB instance, default to 28015
  • db: the name of your RethinkDB database, default to test
  • password: the authentication key to access your RethinkDB, defaults to no password

Use plugin

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);
      });
    }

License

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]>