koaでJSON返させるシンプルで唯一の記述

Koa Node.js JavaScript
0 Comments
Tweet

koaでRESTなものを作ろうと思ったときにJSONでオブジェクトを返す必要がでてきました。
いろいろなことが便利になったkoa、JSONを返すコードも素敵に書くことができます。

コード (sample.js)

var koa = require('koa');
var route = require('koa-route');
var app = koa();
// respond JSON
app.use(route.get('/hoge.json', function *() {
	// set Object you want to respond
	this.body = { foo: 'bar' };
}));
app.listen(3000);

実行

node --harmony sample.js

結果

curl -v localhost:3000/hoge.json
もしくは
open http://localhost:3000/hoge.json (OS X限定)
スクリーンショット 2014-04-21 19.13.36.png

まとめ

何もせずに、無心にObjectを突っ込めばいいのです。
もうJSON.stringify()とか不要なのです。JSON.stringify()なしで動くのです。
Content-Typeもいじらなくていいんです。全部やってくれるんです。
koa、使わない手はないでしょう。
※動かない場合は、app.use(json());を指定すると動く。(バージョン次第?)