npm install rethinkdbdash feathers-rethinkdb --savePlease refer to the Feathers database adapter documentation for more details or directly at:
- RethinkDB - The detailed documentation for this adapter
- Extending - How to extend a database adapter
- Pagination and Sorting - How to use pagination and sorting for the database adapter
- Querying - The common adapter querying mechanism
The feathers-rethinkdb adapter is built to use rethinkdbdash, which is a progressive version of the RethinkDB node driver which simplifies the connection process. It also provides some other benefits like connection pooling.
Pro tip: For faster queries, create indexes on your table beforehand as described here.
Here's an example of a Feathers server with a messages RethinkDB service.
const rethink = require('rethinkdbdash');
const feathers = require('feathers');
const rest = require('feathers-rest');
const socketio = require('feathers-socketio');
const bodyParser = require('body-parser');
const service = require('../lib');
// Connect to a local RethinkDB server.
const r = rethink({
db: 'feathers'
});
// Create a feathers instance.
var app = feathers()
// Enable the REST provider for services.
.configure(rest())
// Enable the socketio provider for services.
.configure(socketio())
// Turn on JSON parser for REST services
.use(bodyParser.json())
// Turn on URL-encoded parser for REST services
.use(bodyParser.urlencoded({extended: true}));
// Create your database if it doesn't exist.
r.dbList().contains('feathers')
.do(dbExists => r.branch(dbExists, {created: 0}, r.dbCreate('feathers'))).run()
// Create the table if it doesn't exist.
.then(() => {
return r.db('feathers').tableList().contains('messages')
.do(tableExists => r.branch( tableExists, {created: 0}, r.tableCreate('messages'))).run();
})
// Create and register a Feathers service.
.then(() => {
app.use('messages', service({
Model: r,
name: 'messages',
paginate: {
default: 10,
max: 50
}
}));
})
.catch(err => console.log(err));
// Start the server.
var port = 3030;
app.listen(port, function() {
console.log(`Feathers server listening on port ${port}`);
});You can run this example by using node example/app and going to localhost:3030/messages. You should see an empty array. That's because you don't have any Todos yet but you now have full CRUD for your new messages service.
Copyright (c) 2016
Licensed under the MIT license.