koa を試してみる。

Node.js の新しいWebフレームワーク koa を試してみました。

Node.js インストール

koa を使うには v0.11.9 以上の Node.js が必要なので、まずは node のインストールから始めます。

$ nvm install 0.11
Now using node v0.11.12
$ node -v
v0.11.12

koa インストール

node のインストールが出来たら、 作業用のディレクトリを作成し、koa をインストールします。

koa でルーティングをするための koa-route もついでにインストールしてみました。

$ mkdir koa-example
$ cd koa-example
$ npm install koa
$ npm install koa-route

app.js

新たに使えるようになる generetor と yield を使って、app.js を書いてみました。

yield next によって、処理が一旦中断され、次の function *() に処理を移すことが出来ます。

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

// ルーティング
app.use(route.get('/', function *(next){
    yield next;
    this.body += 'Hello, World!';
}));

// アクセスした時間
app.use(function *(next){
    this.body = new Date() + '\n';
    yield next;
});

// アクセスしたUserAgent
app.use(function *(next){
    this.body += this.request.header['user-agent'] + '\n';
});

app.listen(3000);
console.log('server listen on port 3000');

Hello, World!

実際に起動する場合は harmony オプションを付けて起動します。

$ node --harmony app.js
server listen on port 3000

localhost:3000 にアクセスしてみると、アクセス日時とUserAgentとHello,World!が表示されました。

Sat Mar 15 2014 02:06:49 GMT+0900 (JST)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36
Hello, World!
Node.jskoa