nodeの世界もどんどん充実してきていますね。 開発言語のトレンドは年々変わってきています。業務レベルではまだ使われることは少ないもののnodeのシェアも増えつつあります。そしてさらなる拡大のために必要になるのが優秀なフレームワークでしょう。 コミュニティベースでも幾つも出てきていますが、今回はPayPalが開発したnode用フレームワーク、Krakenを紹介します。 インストールは簡単でnpmコマンドで終わります。

$ npm install -g generator-kraken

終わったらYeomanのyoコマンドを実行します。ここが格好いいですね。

$ yo kraken

こんな感じで対話的にプロジェクトを生成します。

プロジェクトが生成されたらnpm startでWebサーバが立ち上がります。

$ npm start

> helloworld@0.0.1 start /Users/nakatsugawa/Downloads/HelloWorld
> node index.js

Multipart body parsing will be disabled by default in future versions. To enable, use `middleware:multipart` configuration.
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Listening on 8000

実際にWebブラウザでlocalhost:8000へアクセスすると次のように表示されます。

シンプルですね。

プロジェクト初期のファイル構成は次のようになります。

MVCに分かれた構成になっています。

例えばコントローラは次のようになります。ルーティングも兼ねていますね。

'use strict';

module.exports = function (server) {

    server.get('/', function (req, res) {
        var model = { name: 'helloworld' };
        
        res.render('index', model);
        
    });

};

こちらはビュー。DustJSがデフォルトのテンプレートエンジンになっています。publicの下にあるのが特徴的ですね。サーバサイド、クライアントサイド両方で同じテンプレートファイルが使えるようです。

{>"layouts/master" /}

{<body }
    <h1>{@pre type="content" key="index.greeting"/}
{/body}

機能としてはMVC、多言語化、セキュリティへの配慮などが挙がっています。npm startで実行するとコンロトーラを修正しても即時反映されないといった問題はありますが、コードの見通しは良さそうでかなり有力なフレームワークになるのではないかと思います。

Krakenはnode/JavaScript製、Apache 2.0 Licenseのオープンソース・ソフトウェアです。

KrakenJS Suite paypal/kraken-js