modelis-monk

0.0.6 • Public • Published

modelis-monk

monk plugin for modelis.

monk

Export API

  • Repository.connection
  • Repository.collection
  • Repository.drop
  • Repository.find
  • Repository.findOne
  • Repository.findById
  • Repository.findAndModify
  • Repository.insert
  • Repository.update
  • Repository.remove
  • methods.insert
  • methods.update
  • methods.remove

Option

  • connection (required)
    • monk connection.
  • collection (required)
    • mongodb collection name.
  • option (optional)
    • option.created
      • modelis created attr name.
      • default: created
    • option.updated
      • modelis updated attr name.
      • default: updated

Example

use.
var Modelis = require('modelis');
var monk = require('modelis-monk');
 
// define.
var User = Modelis.define('User').attr('name').attr('age');
 
if (simple) {
  // use.
  User.use(monk('localhost/test', 'users'));
 
  // User.Repository available.
  User.Repository.drop(function() {});
 
  // methods available.
  new User({}).insert(function() {});
}
 
if (customize) {
  // use.
  User.use(monk('localhost/test', 'users'), {}, function(Repository, methods) {
 
    this.Store = Repository;
 
    this.prototype.save = function() {
      if (this.primary() === undefined) {
        return methods.insert.apply(this, arguments);
      } else {
        return methods.update.apply(this, arguments);
      }
    };
 
    this.prototype.remove = methods.remove;
  });
 
  // User.Store available.
  User.Store.drop(function() {});
 
  // methods available.
  new User({}).save(function() {});
}
callback
var Modelis = require('modelis');
var monk = require('modelis-monk');
 
// define.
var User = Modelis.define('User').attr('name').attr('age');
 
// use.
User.use(monk('localhost/test', 'users'));
 
// connection.
User.Repository.connection(); //=> monk connection.
 
// collection.
User.Repository.collection(); //=> monk collection.
 
// insert.
new User({ name: 'john', age: 19 }).insert(function(err, success) {
 
  // find.
  User.Repository.findOne({ name: 'john' }, function(err, user) {
 
    // update.
    user.set('name', 'bob').update(function(err, success) {
 
      // remove.
      user.remove(function(err, success) {});
    });
  });
});
generators(co)
var Modelis = require('modelis');
var monk = require('modelis-monk');
var co = require('co');
 
// define.
var User = Modelis.define('User').attr('name').attr('age');
 
// define plugin.
User.use(monk('localhost/test', 'users'));
 
co(function*() {
  // insert.
  var inserted = yield new User({ name: 'john', age: 19 }).insert();
  inserted.get('name'); //=> john
 
  // find.
  var found = yield User.Repository.findById(inserted.primary());
  found.get('name') //=> john
 
  // update.
  yield found.set('name', 'bob').update();
  var updated = yield User.Repository.findById(found.primary());
  updated.get('name') //=> bob
 
  // remove.
  yield updated.remove();
  var removed = yield User.Repository.findById(updated.primary());
  removed === null; //=> true. `updated` was deleted.
})();

Readme

Keywords

Package Sidebar

Install

npm i modelis-monk

Weekly Downloads

4

Version

0.0.6

License

MIT

Last publish

Collaborators

  • hrsh7th