Skip to content

Instantly share code, notes, and snippets.

@mdaisuke
Forked from novi/gist:1805373
Created February 12, 2012 11:54
Show Gist options
  • Save mdaisuke/1808166 to your computer and use it in GitHub Desktop.
Save mdaisuke/1808166 to your computer and use it in GitHub Desktop.
Node.js 開発環境 基礎

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の使い方 - 大人になったら肺呼吸

今までブラウザで使っていたインスペクタと同じものが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を入力する。もちろん通信が通ればどこからでもアクセス可能。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment