npm install rethinkdbdash feathers-rethinkdb --save
Please 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.dbCreate('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.
0.2.0
- Some minor cleanup
- Getting all tests passing
- Adding support for change feeds
0.1.0
- Initial release.
Copyright (c) 2016
Licensed under the MIT license.