node.js と npm を Ubuntu にセットアップ - Tosshi Note の続きです。
npm で Express - node.js web application framework を入れて動かす。
express は node.js をさらに使いやすくするフレームワーク。使ったことがないが Ruby の Sinatra ライクだそうです。

express をインストール

$ sudo npm install -g express

expressのヘルプ確認

セッション機能やテンプレート、CSSエンジンの指定ができることがわかる。

$ express -h
Usage: express [options] [path]
Options:
-s, –sessions add session support
-t, –template add template support (jade|ejs). default=jade
-c, –css add stylesheet support (less|sass|stylus). default=plain css
-v, –version output framework version
-h, –help output help information

アプリを作る

雛形を作成する。

$ express app1
create : app1
create : app1/package.json
create : app1/app.js
create : app1/views
create : app1/views/layout.jade
create : app1/views/index.jade
create : app1/public/javascripts
create : app1/public/images
create : app1/public/stylesheets
create : app1/public/stylesheets/style.css

アプリの依存モジュールをインストール

実行するには app.js を node でたたく。

$ cd app1
$ node app.js

このまま IPアドレス:3000でブラウザで開くと jade が無いと怒られる。テンプレートエンジンを指定していなかったのでデフォルトのは jade になっている。
ちなみに express 自体も app1 から見られない状態なのでこちらも依存できるようにする必要がある。
パスを通せばいいと思うかもしれないが、思想に倣ってローカルに node_modules を展開する。

$ cd app1
$ npm install
express@2.4.6 ./node_modules/express
├── qs@0.3.1
├── mime@1.2.4
└── connect@1.7.1
jade@0.15.4 ./node_modules/jade
├── commander@0.1.0
└── mkdirp@0.0.6

アプリディレクトリで npm install を実行すると、依存ライブラリを自動で入れてくれる。
以前のバージョンでは npm bundle だったみたい。

パスを通すには、app.js の先頭に

require.paths.unshift(‘/usr/local/lib/node_modules’);

を加える。

実行

$ node app.js
Express server listening on port 3000 in development mode

ブラウザからアクセスして Welcome to Express の後に何も表示されなければ成功。

Production モードでの起動は環境変数NODE_ENV で切り替える。

$ NODE_ENV=production node app.js

キャッシュ機能の多くは production モードでないと有効にならないので注意とのこと。