reql-then

Promisify ReQL queries

ReQL, then

Promisify RethinkDB's ReQL queries. Inspired by rql-promise. Uses the bluebird promise library.

npm install --save rethinkdb reql-then
var connect = require('reql-then')
  , reql = connect({
      host: 'localhost',
      port: 28015,
      db: 'test',
      authKey: '',
      maxPoolSize: 10  // set to 1 to disable connection pooling 
    });
 
// Run a query 
var query = r.db('MiddleEarth').table('Wizards').get('Gandalf').update({colour: 'White'});
reql(query).then(function (result) {
  // handle result 
}).error(function (err) {
  // handle error 
}).catch(function (err) {
  // handle exception 
});
 
// Make lazy query functions 
var beans = r.table('counter').get('beans')
  , add = reql.lazy(beans.update({count: r.row('count').add(1) }))
  , mul = reql.lazy(beans.update({count: r.row('count').mul(2) }))
  , sub = reql.lazy(beans.update({count: r.row('count').sub(3) }));
add().then(mul).then(sub);
 
// Disconnect 
reql.close().then(function () {
  console.log('good bye');
});

Testing uses the mocha framework. A RethinkDB test server needs to be running at localhost:28015:

$ npm install -g mocha
$ rethinkdb --directory test &
$ npm test

Enable debugging messages (assuming server.js uses reql-then):

$ DEBUG=reql-then node server.js