Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A bridge between the M and C bits of MVC
Branch: master
Failed to load latest commit information.
test test of multiload
.travis.yml tap 1.2.0 and travis
LICENSE isc license Add loadAs for aliasing
emcee.js Add loadAs for aliasing
package.json tap 1.2.0 and travis


A model loader that a controller calls. Basically, just the M and C bits of MVC.

An interface for controllers to specify that certain models will be needed, and then have them get loaded.


var MC = require('emcee')

// add a bunch of models
MC.model('login', function (req, cb) {
  // callback is called with (er, data)
  req.session.get('login', cb)

MC.model('train', function (url, res, cb) {


// later on...

http.createServer(function (req, res) {
  // check if the user is logged in.
  var m = new MC()

  // modelname, args...
  m.load('login', req)
  m.load('bike', req.url, res)
  // different kind of bike: modelname, alias, args...
  m.loadAs('bike', 'motorbike', 'dirt', 'roads')

  m.end(function (er, models) {
    // either there is an error, or all models are loaded on the
    // 'models' object.  note that all errors are assumed to be
    // catastrophic, so you only get the first error, and the
    // models object will only contain the models that got loaded
    // before the error occurred.
Something went wrong with that request. Please try again.