expressを試してみる

node.jsからのー!expressを試してみました。
サーバサイドで動作するJavaScriptであるnode.js。
expressとは、そのnode.js上でRESTfulなアプリケーションを作成するためのフレームワークです。

本家:express

RubyのwebアプリケーションフレームワークであるSiratra風のAPIを提供しています。


環境

  • Ubuntu 10.04 LTS
  • node.js 0.1.96


まずはインストールから。

kiwiのインストール
kiwiとはnode.jsのパッケージマネージャです。

git clone git://github.com/visionmedia/kiwi.git
cd kiwi
sudo make install
kiwi -V
=> 0.3.0

expressのインストール

kiwi -v install express
kiwi list
=> express : 0.9.0

kiwiでインストールしたパッケージは、$HOME/.kiwi 以下に格納されます。
さっそくHelloWorldを試してみます。

mkdir express_text
cd express_text
// app.js
requier("kiwi").require("express");

get("/", function() {
    this.redirect("/home");
});

get("/home", function() {
    return "<h1>Hello World!</h1>"
});

run();

さっそく実行してみます。

node app.js
=> Express started at http://localhost:3000/ in development mode

さっそくブラウザからアクセスします。
おおっ!でてますね!「Hello World!」


expressではいくつかのテンプレートエンジンも使えるみたいです。
今回はHamlを使ってみます。

kiwi install haml
kiwi list
=> express : 0.9.0
   haml    : 0.4.1

さきほどのサンプルソースを改造してみます。

// app.js
requier("kiwi").require("express");

configure(function() {
    set("root", __dirname);
});

get("/", function() {
    this.redirect("/home");
});

get("/home", function() {
    this.render("home.html.haml", {
        locals: {
            message: {title: "Hello World!!", body: "I lovs node.js!"}
        }
    });
    // return "<h1>Hello World!</h1>"
});

run();

viewファイルも作っておきましょう。

mkdir views
// views/home.html.haml
%html
  %body
    %title= message.title
    %h1= message.title
    = message.body

アプリケーションを実行します。

node app.js

ブラウザから確認します。
正しく表示されていますね。


ドキュメントやexpressのサンプルを見る限るでは、テンプレートエンジンに、ejs(RubyのerbのJavaScript版)やその他のミドルウェア(RubyのRack風)が使える(ようになる?)みたいです。
まだそこまでの機能はそろってないみたいですが、これから発展が楽しみです。