tote
v1.2.0
Published
A small data layer for PouchDB
Downloads
6
Readme
tote
A data model plugin for PouchDB.
Getting Started
var PouchDB = require('pouchdb');
var tote = require('tote');
PouchDB.plugin(tote);
var db = new PouchDB('music');
db.define('band': {
generateId: function (band) {
return band.name;
},
validate: function (band) {
if (!band.name) {
return {name: 'Missing name'}
}
return undefined; // Valid, do not return an error object
}
});
db.band.save({ name: 'Melvins' }, function (err) {
if (!err) {
db.band.all(function(bands) {
console.log(bands);
});
} else {
console.log(err);
}
});API
tote is a PouchDB plug in. Install it like so:
var PouchDB = require('pouchdb');
var tote = require('tote');
PouchDB.plugin(tote);will add a define function to all PouchDB instances.
db.define(modelName [,options])
Define a named set of documents within the database. After calling
define, the db instance will have a modelName key under
which a save function and other query and actions functions are
added.
Options
generateId (function)
When saving a new document, this function will be invoked and passed
the object to be saved as an argument. generateId should return a
string that uniquely identifies the document.
generateIdSegments (function)
This is a different document ID generation function that takes
precedence over generateId. Instead of returning a single string,
generateIdSegments should return an array of strings, which will
be "slugified" and joined with "_" to create the id for a document
being saved.
validate (function)
This function will be invoked and passed a prospective object before
it is saved to the database. If the object is valid, this function
should return undefined. Returning any truthy value will prevent
the object from being saved.
queries (object)
A set of named functions that are used to transform arguments into PouchDB queries
actions (object)
db.modelName.all()
Returns all documents of the modelName type.
db.modelName.queryName([arg1, arg2, ... argN)
Run a query on either the allDocs index or a custom view.
db.modelName.actionName(arg1, arg2, ... argN)
Run a function in the context of a database instance.
Releases
1.2.0
The model.all method now returns a promise.
1.1.0
The model.save method now returns a promise in all cases.
1.0.0
Initial

