3 category: JavaScript libraries
5 prism_languages: [coffeescript]
7 [Modella](https://www.npmjs.com/package/modella) allows you to create simple models in JavaScript. This is a guide on basic usage of Modella in CoffeeScript.
13 User = Modella('User')
18 .attr('email', { required: true })
19 .use(require('modella-validators'))
24 u.error('username', 'is required') unless u.has('username')
54 Model.emit('event', [data...])
58 record.emit('event', [data...])
67 .on 'saving', (data, done) -> done()
72 .on 'removing', (data, done) -> done()
82 .on 'change email', ->
86 .on 'initializing', (instance, attrs) ->
91 .on 'error', -> failed to save model
95 .on 'setting', (instance, attrs) -> # on Model#set()
96 .on 'attr', -> # new attr via Model.attr()
108 Model.prototype.method = ...
114 A plugin is a function that returns a model decorator (ie, a function that takes in a model and returns a model).
121 .find id, (err, user) ->