Generic controller implementation for Koa applications.
$ npm install koa-generic-controller --save
var koa = require('koa');
var Controller = require('koa-generic-controller');
class TestController extends Controller {
configure () {
// use some middleware
this.use('beforeAll'); // execute before all methods
this.use('beforeHello', { only: 'hello' }); // only before hello
this.use('exceptHello', { except: 'hello' }); // before all except hello
}
* hello () {
this.body = 'Hi';
}
* beforeAll (next) {
// do something
yield next;
}
}
var app = koa();
app.use(function * (next) {
var controller = new TestController(this); // pass context to controller
yield controller.execute('hello');
yield next;
});
app.listen(3000);
$ npm test
koa-generic-controller is released under the MIT license.