Nothinkdb
Functional toolkit for rethinkdb.
- handle schema validation with joi.
- handle default fields like
id
, createdAt
, updatedAt
. - fully customizable 1-n, 1-1, n-1, n-m relations. (create, remove, join).
- ensure table, secondary index.
- many useful query generator.
Install
npm install -S nothinkdb
Example
import Joi from 'joi';
import { r, Table, schema } from 'nothinkdb';
const userTable = new Table({
table: 'user',
schema: () => ({
id: schema.id,
name: Joi.string().required(),
isPremium: Joi.boolean().default(false),
}),
});
async function run() {
const connection = await r.connect({ db: 'test' });
await userTable.sync(connection);
const normalUser = userTable.create({ name: 'user1' });
const premiumUser = userTable.create({ name: 'user2', isPremium: true });
await userTable.insert([
normalUser,
premiumUser,
]).run(connection);
const users = await userTable.query().coerceTo('array').run(connection);
console.log(users);
await connection.close();
}
run();
If you want to see more examples, See the Examples
API
See the API Reference.