koa-lite/Readme.md
2013-08-17 00:15:57 -07:00

2 KiB

koa middleware framework for nodejs

Expressive middleware for node.js using generators via co to make writing web applications and REST APIs more enjoyable to write.

Koa provides a useful set of methods that make day to day web application and API design much faster, and less error-prone than "raw" nodejs. Many of these utilities were extracted from Express, however moving them to this layer allows middleware developers to avoid boilerplate and refrain from re-implementing many of these features, sometimes incorrectly or incomplete.

Only methods that are common to nearly all HTTP servers are integrated directly into Koa's small ~400 SLOC codebase. No middleware are bundled with koa. If you prefer to only define a single dependency for common middleware, much like Connect, you may use koa-common.

Installation

$ npm install koa

To use Koa you must be running node 0.11.4 or higher for generator support, and must run node(1) with the --harmony-generators flag. If you don't like typing this, add an alias to your shell profile:

alias node='node --harmony-generators'

Community

Example

var koa = require('koa');
var app = koa();

// logger

app.use(function(next){
  return function *(){
    var start = new Date;
    yield next;
    var ms = new Date - start;
    console.log('%s %s - %s', this.method, this.url, ms);
  }
});

// response

app.use(function(next){
  return function *(){
    yield next;
    this.body = 'Hello World';
  }
});

app.listen(3000);

Running tests

$ make test

License

MIT