Express を試してみる
Webアプリケーションフレームワークである Express を試してみた。
Sinatra inspired web development framework for node
https://github.com/visionmedia/express
と書かれている通り、Sinatra に近い。
環境
% node -v v0.5.0-pre % express -v 1.0.7
サンプル
ひな形作成
express を引数なしで起動すると、ひな形を作成してくれる。
% express create : . create : ./app.js create : ./public/images create : ./pids create : ./logs create : ./public/stylesheets create : ./public/stylesheets/style.css create : ./public/javascripts create : ./test create : ./test/app.test.js create : ./views/partials create : ./views/layout.jade create : ./views/index.jade - make sure you have installed jade: $ npm install jade
ん、jade はインストールしてあるのに...
起動
% node app.js Express server listening on port 3000
localhost:3000 にアクセスすると "Welcome to Express" と表示される。
リロード
開発中、ソースを更新したらサーバを再起動させないと更新分が反映されない。それは非常に面倒くさい。
node-dev を使うと、自動的に再起動してくれる。
インストール
% npm install node-dev
実行
エラーだ。
% node-dev app.js zsh: /home/yamamucho/.npm/bin/node-dev: bad interpreter: /usr/local/bin/node: そのようなファイルやディレクトリはありません
原因は node-dev に書かれている node コマンドのパスが、実行環境での node コマンドのパスと違うこと。
% head -n1 ~/.npm/bin/node-dev #!/usr/local/bin/node % which node /home/yamamucho/local/node/bin/node
あまり開発環境やパッケージでインストールしたソースに影響を与えたくないので、node コマンドで node-dev を引数に与える方法で進めてみようと思う。
% alias node-dev='node ~/.npm/bin/node-dev' % node-dev app.js 27 Feb 11:29:01 - [INFO] Started 27 Feb 11:29:07 - [INFO] Restarting
うん、再起動されてる。
再起動するタイミングは、HTTPリクエストが到着した時ではなく、ファイルの更新が保存された時。どうやってるんだろ、後でソース見よ。JavaScript は詳しくないから想像が付かない。