Created
February 12, 2012 00:43
Revisions
-
novi created this gist
Feb 12, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,87 @@ ## Node.js 開発環境 基礎 ### Node.jsのインストール 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 ### 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の使い方 - 大人になったら肺呼吸](http://d.hatena.ne.jp/replication/20111202/1322752174) 今までブラウザで使っていたインスペクタと同じものが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`を入力する。もちろん通信が通ればどこからでもアクセス可能。