Package Exports
- thinky
- thinky/lib/document
- thinky/lib/errors
- thinky/lib/type
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (thinky) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Thinky
===============================
Light Node.js ORM for RethinkDB.
Quick start
Install:
npm install thinkyUse:
var thinky = require('thinky')();
var type = thinky.type;
// Create a model - the table is automatically created
var Post = thinky.createModel("Post", {
id: String,
title: String,
content: String,
idAuthor: String
});
// You can also add constraints on the schema
var Author = thinky.createModel("Author", {
id: type.string(), // a normal string
name: type.string().min(2), // a string of at least two characters
email: type.string().email() // a string that is a valid email
});
// Join the models
Post.belongsTo(Author, "author", "idAuthor", "id");Save a new post with its author.
// Create a new post
var post = new Post({
title: "Hello World!",
content: "This is an example."
});
// Create a new author
var author = new Author({
name: "Michel",
email: "orphee@gmail.com"
});
// Join the documents
post.author = author;
post.saveAll().then(function(result) {
/*
post = result = {
id: "0e4a6f6f-cc0c-4aa5-951a-fcfc480dd05a",
title: "Hello World!",
content: "This is an example.",
idAuthor: "3851d8b4-5358-43f2-ba23-f4d481358901",
author: {
id: "3851d8b4-5358-43f2-ba23-f4d481358901",
name: "Michel",
email: "orphee@gmail.com"
}
}
*/
});Retrieve the post with its author.
Post.get("0e4a6f6f-cc0c-4aa5-951a-fcfc480dd05a").getJoin().run().then(function(result) {
/*
result = {
id: "0e4a6f6f-cc0c-4aa5-951a-fcfc480dd05a",
title: "Hello World!",
content: "This is an example.",
idAuthor: "3851d8b4-5358-43f2-ba23-f4d481358901",
author: {
id: "3851d8b4-5358-43f2-ba23-f4d481358901",
name: "Michel",
email: "orphee@gmail.com"
}
}
*/
});Documentation
Help
No SLA, but a few developers hang out there and may be able to help:
Run the tests
npm testContribute
You are welcome to do a pull request.
Roadmap
The roadmap is defined with the issues/feedback on GitHub. Checkout:
https://github.com/neumino/thinky/issues
Author
- Michel Tu -- orphee@gmail.com -- blog -- twitter
Contributors
- chrisfosterelli
- colprog
- dulichan
- flienteen
- marshall007
- mindjuice
- Morhaus
- primitive-type
- nikaspran
- rasapetter
- simonratner
- wezs
License
MIT, see the LICENSE file