node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »



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.

Getting koa-barista

Install via npm, thusly:

npm install koa-barista


App init

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')
// Add middleware 

In route/controller

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' ],
   [ { optional: false,
       method: 'GET',
       params: [Object],
       parts: [Object],
       route_name: null,
       path: '/profiles/:username',
       regex: /^(\/profiles\/([\w\-\s]+))(\?.*)?$/ } ],
   { method: 'GET',
     controller: 'user',
     action: 'show',
     username: 'sbani' } }

Things I forgot...

...give me a hint!

It's broken!

Shit happens. Contributors and patches are welcome!

Who are you?

I'm Sufijen Bani, Website.