koa-barista is a middleware for koa, using barista as router module. koa-barista gives you the controller part of an MVC pattern with controller/route files for actions.
Install via npm, thusly:
npm install koa-barista
var app = require('koa')()
var koa_barista = require('koa-barista')
// Add routes and give routes directory
var router = new koa_barista(__dirname + '/routes/')
// See barista to learn how to add routes
router.match('/profiles/:username', 'GET')
.to('user.show')
// Add middleware
app.use(router.callback())
app.listen(1337)
koa-barista is adding the router object to koa's context. There will also be added the matching object from barista to make sure you can use it in your app.
app.use(function *() {
this.body = this.router
}
This could output:
{ options: { directory: '/Users/sbani/koa-barista/example/routes/' },
methods: [ 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'OPTIONS' ],
routes:
[ { optional: false,
method: 'GET',
params: [Object],
parts: [Object],
route_name: null,
path: '/profiles/:username',
regex: /^(\/profiles\/([\w\-\s]+))(\?.*)?$/ } ],
match:
{ method: 'GET',
controller: 'user',
action: 'show',
username: 'sbani' } }
...give me a hint!
Shit happens. Contributors and patches are welcome!
I'm Sufijen Bani, Website.