Koa-Ovenware
Automatic Model / Controller Loader for Koa
- Write a controller and get all route pattern you want.
- Compatible with other middlewares including view renders.
Install
npm install koa-ovenware --save
Simple Usage
Require...
var kow = ;
Config...
;
Controller file
Default path of controllers: ./lib/controllers/
in index.js:
exports { thisbody = 'hello koa';};
Checkout the examples.
Conventions
Action Mapping
route http method function of ctrl
:resource get index
:resource post create
:resource/:id get get
:resource/:id put update
:resource/:id del del
All routes can be customized by setting, see Default values; and also can be changed by controller api singly, see APIs - Routes.
Resource
Resource name will be the file name of the controller, if there is no alias set for the controller, see APIs - Alias.
APIs
Options
options
see Default values
Controller APIs
Alias
Set alias for the controller.
exportsalias = 'name_you_want';
Routes
Set routes for the controller.
exportsroutes = entry: method: 'get' path: '/index' ;
Model
Get model object.
/** * get model object by given controller file name * * @param * the the same name as this controller * @return */thisexports
for exmample:
exports { this;};// orexports { this; // this === exports};
Ctrl
Get controller object.
/** * get ctrl object by given controller file name * * @param * @return */thisexports
for exmample:
exports { this; // => return this exports};// orexports { exports;};
Global configuration
Default values
root: './lib' // root dir ctrl: 'controllers' // controllers dir model: 'models' // model dir format: 'json' // format by default prefix: '/' // String or RegExp aliases: 'index': '' routes: 'index': method: 'get' path: '' 'create': method: 'post' path: '' 'get': method: 'get' path: '/:id' 'update': method: 'put' path: '/:id' 'del': method: 'del' path: '/:id'
License
MIT