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!