0.1.1 • Published 12 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-modelStability
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