Models for le db.
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);
})();
$ npm install le-model
Expect things to change a lot as this module grows with its usage. So far it's only being used in tiny websites.
- [x] schemata
- [x] unique fields
- [x] indexed fields
- [x] field defaults
- [x] getters
- [ ] setters
- [ ] plugins
- [ ] fluent field api
- [ ] test suite
Create a new model named name
in db
with given fields
.
Create an instance of model from a data
object.
Getter for every field.
Validate current data, throws if invalid.
Save, if validations pass.
Delete.
Load a model by each indexed Field
.
{
"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.
MIT