OS X ならHomebrewまたはMacportsで。
[~] $ brew install node
[~] # port install node
nodeコマンドでnodeのインタプリタを起動。
[~] $ node
RubyにおけるGem+Bundlerのようなものです。これもBundlerと同じく、システムとローカル両方の閉じた環境にインストールできます。Gemfileに当たるのがpackage.jsonです。
[~] $ mkdir hogeproj
[~] $ cd hogeproj
適当なプロジェクト用のフォルダを作成して、package.jsonを作成する。ここではexpressを指定。バージョンを気にしない場合は、">= 0.0.1"
とする。指定する場合は"3.2.1"
、以上なら">= 1.2.3"
。
// ~/hogeproj/package.json
{
"name": "hoge-app"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": ">= 0.0.1"
}
}
パッケージをインストール。
[~] $ npm install
これで~/hogeproj/node_modules/*
の閉じた環境にインストールされる。.gitignoreに追加するとよい。
実行ファイルが含まれる場合は、パスが通っていないので、パスを通すか、通常パスを指定して実行する。
Bundlerにあるようなbundle exec
という概念はExpressのフォルダ構造を見ると分かるが、モジュール自体パスベースの読み込みなので特に無い。
また、パッケージを単独でシステムにインストールするには-g
オプションを使う。
[~] # npm install -g express
RubyにはSinatraやPadrinoがありますが、Nodeにおいてそれに相当するのがExpressです。
httpサーバーベースのWebアプリ、サーバーサイドを作る時に必要なサーバー・ルーティング・各種ヘルパー・エラー処理等必要最低限のものが用意されています。それ以外は自分で選んで追加してく格好になります。 Middlewareの設計が良く、豊富に作られているので、機能を追加したりする場合はまずMiddlewareの選択・開発を考えてみると良いでしょう。
プロジェクトのディレクトリは自動的に作成されるので、そのままexpressコマンドでプロジェクトを新規作成する。
[~] $ express hogeproj
使えるオプションは-h
オプションで確認する。
アプリを走らせる。
[~] $ cd hogeproj
[~/hogeproj] $ node app.js
ただし、これではソースコードを編集したときに立ち上がっているアプリには反映されない。毎回アプリを立ち上げ直す必要があるが、それを自動で行ってくれるnode-devをインストールする。
[~] # npm install -g node-dev
[~/hogeproj] $ node-dev app.js
node
コマンドの代わりにnode-dev
コマンドを使う。
c.f. node.jsのデバッグ(ステップ実行)ができるnode-inspectorの使い方 - 大人になったら肺呼吸
今までブラウザで使っていたインスペクタと同じものがNode.jsのラインタイム上でも使えます。ただし、Nodeにはインスペクタを表示するためのインターフェースが無いので、通常のブラウザを使います。
[~] # npm install -g node-inspector
node-inspectorをインストールして、$ node-inspector
で起動。これでデバッガは準備完了なので、続いてnodeのアプリを走らせる。(ちなみにここで8080はインスペクタのWebアプリのポート、5858はNodeが使うデバッグ用のポート)
visit http://0.0.0.0:8080/debug?port=5858 to start debugging
nodeからアプリを立ち上げるときには--debug
オプションを付ける。
[~/hogeproj] $ node --debug app.js
node-dev
を代わりに使う場合は、$ node-dev --debug app.js
。
あとはブラウザから先ほど表示されたアドレスhttp://0.0.0.0:8080/debug?port=5858
を入力する。もちろん通信が通ればどこからでもアクセス可能。