node.jsのフレームワーク「express」を動かしてみる。
2013年3月18日
今の環境は、nodebrewでnode.jsをインストールをして、npmが使える状態になってます。
(環境を作った時のエントリーはこちら -> 「CentOS6.3にnode.js(v0.10.0)をインストールしてみる。」)
expressのインストール
npm install -g express
※npmの-gオプションを付けないと、カレントディレクトリのnode_modules以下にインストールされます。そうすると、当然pathが通ってないので、直接expressコマンドが使えません。-gオプションを付けた場合は、~/.nodebrew/node/v0.10.0/lib/node_modules/にインストールされます。
※現在使用しているnodeのバージョンにsymlinkが張られているので、~/.nodebrew/current/lib/node_modules/でアクセスもできます。
expressのdefaultのテンプレートエンジン「jade」もインストールしておきます。
npm install -g jade
アプリの作成
express test # 作成されたファイル一覧 tree test test ├── app.js ├── package.json ├── public │ ├── images │ ├── javascripts │ └── stylesheets │ └── style.css ├── routes │ ├── index.js │ └── user.js └── views ├── index.jade └── layout.jade
とりあえず実行してみる
node app.js -> Error: Cannot find module 'express'
expressはすでにインストールされてるので、Pathが通ってないぽいですね。
Pathを通します。
以前は、require.paths.push(‘/home/nodeuser/.nodebrew/hogehoge’);みたいな感じで、requireの前に書いて、直接Pathを追加できたようですが、この機能は廃止される(廃止された?)ようです。
って事で、NODE_PATHを使うことにします。
vi ~/.bash_profile # 下記を追加 export NODE_PATH=$HOME/.nodebrew/current/lib/node_modules:$NODE_PATH # 反映 source ~/.bash_profile
再度実行
node app.js -> Express server listening on port 3000
とりあえずdefaultのポート3000番で起動できました。
ブラウザからアクセスすると、
「Welcome to Express」
てな感じの表示がされました。