fist-fistlabs_unit_controller
Fist plugin providing abstract controller
##Basic usage:
// app.js
var app = fist({
unitSettings: {
_fistlabs_unit_controller: {
viewsDir: '/views',
engines: {
'.jade': require('consolidate').jade
}
}
}
});
app.install('fist-fistlabs_unit_controller');
// fist_plugins/units/controllers/news.js
app.unit({
base: '_fistlabs_unit_controller',
name: 'news',
rule: 'GET /news/',
defaultName: 'index.jade',
deps: ['user_info', 'news_list']
});
##Settings
You can configure base controller unit with params.unitSettings
###String viewsDir=app.params.root+'views'
The directory name view names will be resolved from
###Object engines={}
The dictionary which provides extname->engine relation
Supports extensions as bemhtml.js
, in fact it is the substring from end of view file name.
The value may be both string and function (consolidate.js)
##API:
_fistlabs_unit_controller
unit a also provides some api to make your controllers smarter.
###String unit.defaultViewName
Default view name
###String unit.lookupViewName(track, context)
Should return template name, returns unit.defaultViewName
by default.
###String unit.rule
Router rule to automatic assign the unit with request pattern
LICENSE MIT