fendjs-model
Minimalistic extensible model component for Fend.js.
API
Modeler(name)
Create a new model with the given name
.
var Modeler = ;var User = ;
Modeler.use(fn)
Use the given plugin fn()
on all model.
var Modeler = ;Modeler;
Model.attr(name, [meta])
Define an attribute name
with optional meta
data object.
var Modeler = ; var Post =
With meta data used by plugins:
var Modeler = ; var Post =
Model.validate(fn)
Add validation fn()
.
Model.use(fn)
Use the given plugin fn()
.
var Modeler = ;var Post = Post;
Model.get(id, fn)
Get id
and invoke fn(err, model)
.
Model.all(fn)
Get all and invoke fn(err, model)
.
Model.destroyAll(fn)
Remove all and invoke fn(err)
.
Model#ATTR()
"Getter" function generated when Model.attr(name)
is called.
var Post = var post = ;posttitle'Ferrets'postbody'Make really good pets'
Model#ATTR(value)
"Setter" function generated when Model.attr(name)
is called.
var Post = var post = title: 'Cats' ; posttitle// => "Cats" posttitle'Ferrets'posttitle// => "Ferrets"
- Emits "change" event with
(name, value, previousValue)
. - Emits "change ATTR" event with
(value, previousValue)
.
post post
Model#primary(val)
Get / set the primary key.
Model#isNew()
Returns true
if the model is unsaved.
Model#toJSON()
Return a JSON representation of the model (its attributes).
Model#has(attr)
Check if attr
is non-null
.
Model#get(attr)
Get attr
's value.
Model#set(attrs)
Set multiple attrs
.
user
Model#changed([attr])
Check if the model is "dirty" and return an object of changed attributes. Optionally check a specific attr
and return a Boolean
.
Model#error(attr, msg)
Define error msg
for attr
.
Model#isValid()
Run validations and check if the model is valid.
user// => false usererrors// => [{ attr: ..., message: ... }]
Model#save(fn)
Save or update and invoke the given callback fn(err)
.
var user = name: 'Tobi' user
Emits "save" when complete.
Model#destroy([fn])
Destroy and invoke optional fn(err)
.
Emits "destroy" when successfully deleted.
Testing
$ npm install
$ make test
License
See the LICENSE
.