node.js と npm を Ubuntu にセットアップ - Tosshi Note の続きです。
npm で Express - node.js web application framework を入れて動かす。
express は node.js をさらに使いやすくするフレームワーク。使ったことがないが Ruby の Sinatra ライクだそうです。
express をインストール
- g はグローバルオプション。これを付けないとコマンド実行パスの node_modules にインストールされる。
$ sudo npm install -g express
expressのヘルプ確認
セッション機能やテンプレート、CSSエンジンの指定ができることがわかる。
$ express -h
Usage: express [options] [path]
Options:
-s, –sessions add session support
-t, –template
-c, –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 モードでないと有効にならないので注意とのこと。