0.1.1 • Published 10 years ago
le-model v0.1.1
Le model
Models for le db.
Usage
var Model = require('le-model');
var le = require('le');
var co = require('co');
var db = le('db');
var User = Model('user', db, {
name: {
required: true,
unique: true,
index: true
},
createdAt: {
require: true,
default: function(){ return Date.now() }
}
});
co(function*(){
var user = new User({ name: 'julian' });
yield user.save();
// ...
var user = yield User.byName('julian');
console.log('user created at: %s', user.createdAt);
})();
Installation
$ npm install le-model
Stability
Expect things to change a lot as this module grows with its usage. So far it's only being used in tiny websites.
Roadmap
- schemata
- unique fields
- indexed fields
- field defaults
- getters
- setters
- plugins
- fluent field api
- test suite
API
Model(name, db, fields)
Create a new model named name
in db
with given fields
.
model(data)
Create an instance of model from a data
object.
model#
Getter for every field.
model#validate*()
Validate current data, throws if invalid.
model#save*()
Save, if validations pass.
model#delete*()
Delete.
model.by
Load a model by each indexed Field
.
Schema
{
"field_name": {
// options
}
}
required
: Require a field to be set before a record can be saved.unique
: Ensure a field's value is unique across all records.index
: Index a field to make it accessible viamodel.by<Field>
.default
: A function whose return value will be used as default for a field. Called with the context of the model instance.
License
MIT