node.js に npm で express をインストールして試す
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 <engine> add template <engine> support (jade|ejs). default=jade -c, --css <engine> add stylesheet <engine> 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 モードでないと有効にならないので注意とのこと。