Mac OS Xにnode.js + expressの環境を作る


Mac OS X Lion 10.7.2
Homebrew 0.8.1
nvm November 18, 2011
node.js v0.6.8
npm 1.1.0-2
express 2.5.5

 node.jsのチュートリアル記事は既に大量にありますが、node.js自体の開発スピードが早いこともあって情報がすぐに古くなっているようなので、今のところ一番簡単(と思われる)セットアップ方法を記しておきます。これを書いている間にv0.6.8からv0.6.9にバージョンアップしていたぐらいに開発速度が早い……。

 今回のエントリではMac OS Xで試していますが、最近のLinux環境ならだいたい動くのではないかなと思います。色んな環境で試したわけではないですが。

node.jsのインストール

ソースからインストールする方法もありますが、nvmを使うと非常に簡単にインストールできます。

1. nvmをインストール
インストールと言ってもgit cloneするだけ

% git clone git://github.com/creationix/nvm.git ~/.nvm

2. nvmを読み込む
本体はnvm.shというスクリプトだけなのでこれをsourceする

% source ~/.nvm/nvm.sh

3. node.jsをインストールする
もし、zshを使っている場合はこの作業だけはbashでやった方がいいです。
(zshとnvmは相性が悪くて、ログも吐かずに謎のエラーでinstall failedしたりする)

% nvm install v0.6.8

4. シェルの設定を変更する
単にnvm.shをsourceしてnvm useするだけ

.zshrc

source ~/.nvm/nvm.sh
nvm use v0.6.8 > /dev/null

.bashrc

source ~/.nvm/nvm.sh
nvm use v0.6.8 > /dev/null

5. シェルを再起動するなりして起動を確認する
バージョンを確認して

% node -v

次のように表示されれば成功です。

v0.6.8

expressを使ってみる

nvmでnode.jsをインストールしておけば、パッケージマネージャのnpmも使えるようになっています。

今回は、Webアプリケーションフレームワークのexpressを入れてみます。

% npm install -g express

npmのオプションに-gを付けない場合は、カレントディレクトリのnode.jsアプリケーションでモジュールをロードできるようにインストールします。-gを付けると、一度のインストールで全部のnode.jsアプリケーションで使えるようにグローバルな領域にモジュールをインストールします。

ただし、グローバルな領域にモジュールをインストールした場合は、そのモジュールを使用したいnode.jsアプリケーションで、アプリケーションとグローバルにインストールしたモジュールを結びつける必要があります。

% npm link hoge

expressの動作を試す

expressでサンプルアプリケーションを作ってみます。
npmでexpressをインストールした場合、expressコマンドが使えるようになっている筈です。
適当なディレクトリで次のコマンドを発行すると、新たにsampleディレクトリが作られます。

% express example

次のようにアプリケーションの骨組みが作られます。

create : example
create : example/package.json
create : example/app.js
create : example/public
create : example/routes
create : example/routes/index.js
create : example/views
create : example/views/layout.jade
create : example/views/index.jade
create : example/public/javascripts
create : example/public/stylesheets
create : example/public/stylesheets/style.css
create : example/public/images

dont forget to install dependencies:
$ cd example && npm install

expressコマンドでアプリケーションの骨組みを作ったものの、このままではまだ必要モジュールが使える状態になっていません。expressコマンドを使った場合、package.jsonに必要なモジュールのリストが格納されており、exampleディレクトリ内でnpm installコマンドを使うと、このpackage.jsonが読み込まれて必要なモジュールがインストールされる仕組みになっています。

npm install

express本体とテンプレートエンジンのjadeがインストールされました

express@2.5.5 ./node_modules/express
├── mkdirp@0.0.7
├── qs@0.4.1
├── mime@1.2.4
└── connect@1.8.5
jade@0.20.0 ./node_modules/jade
├── commander@0.2.1
└── mkdirp@0.3.0

さっそく、アプリケーションを動かしてみます

% node app.js

次のようなメッセージが表示されるので、http://127.0.0.1:3000/にアクセスしてみます。

Express server listening on port 3000 in development mode

次のような画面が表示されると成功です。
node_js_sample.png

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>