Skip to content

Node.jsを利用するための環境構築

  • Node.jsとは,サーバサイドのJavaScript実行環境
  • npm(Node Package Manager)
    • Node.jsのツールやパッケージ(モジュール)をインストール,管理するシステム
    • リポジトリ機能も有り,必要とするパッケージ(モジュール)の検索,ダウンロード,インストール,アップデートが行える

nodebrewのインストール

Node.jsを一般ユーザ権限で,かつバージョン管理するために,まずはnodebrewを入れる.

$ curl -L git.io/nodebrew | perl - setup

ファイル群は$HOME/.nodebrew以下に展開されるので,~/.nodebrew/current/binにPATHを設定しておく.

$ echo "export PATH=$HOME/.nodebrew/current/bin:$PATH" >> ~/.bashrc
$ source ~/.bashrc

以下ではこのnodebrewを利用する.

Node.jsのインストール

はじめにインストール可能なnode.jsのバージョンを確認.(山ほど表示されるので注意)

$ nodebrew ls-remote
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6    

v0.1.0    v0.1.1    v0.1.2    v0.1.3    v0.1.4    v0.1.5    v0.1.6    v0.1.7
...(snip)
v8.9.1    v8.9.2    v8.9.3    v8.9.4    v8.10.0   

v9.0.0    v9.1.0    v9.2.0    v9.2.1    v9.3.0    v9.4.0    v9.5.0    v9.6.0
v9.6.1    v9.7.0    v9.7.1    v9.8.0    v9.9.0    

io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0
io@v1.4.1 io@v1.4.2 io@v1.4.3 io@v1.5.0 io@v1.5.1 io@v1.6.0 io@v1.6.1 io@v1.6.2
io@v1.6.3 io@v1.6.4 io@v1.7.1 io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4

io@v2.0.0 io@v2.0.1 io@v2.0.2 io@v2.1.0 io@v2.2.0 io@v2.2.1 io@v2.3.0 io@v2.3.1
io@v2.3.2 io@v2.3.3 io@v2.3.4 io@v2.4.0 io@v2.5.0

io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1

適当なバージョンのnode.jsをインストールする.

$ nodebrew install-binary latest (vX.X.Xとかでも良い)

最後に使用するnodeのバージョンを指定する.(複数のバージョンがインストールされている場合は切り替えて使える)

$ nodebrew use latest
use v9.9.0

以上でnodeコマンドとnpmコマンドを使えるようになる.ちなみに,(ローカルPCで)利用可能なNode.jsのバージョンを調べるには以下.

$ nodebrew ls

Node.jsでWebサーバを起動する

テストも兼ねて,webサーバを立ち上げてみよう.まずは以下のようにtest_server.jsを作る.

var http = require('http');

http.createServer( function(request, response) {
    response.end('Hello, world!');
}).listen(6002);

これをNode.jsで動かす.

$ node test_server.js

ブラウザで6002につないでみて,以下のように表示されればOK.

このように,非常に簡単にWebサーバを作ることができる!.なお,終了するには,nodeコマンドを入力した端末ウィンドウでCTRL+Cを押せば良い.

Node.jsの特徴

Node.jsには次のような特徴がある.

  • JavaScriptでサーバサイド処理を実装できる
  • 非同期I/O,ノンブロッキングI/Oモデルを採用している
  • イベント駆動型である(シングルスレッドのデメリットを解消できる)
  • Googleの「V8」エンジンで動作する(ので非常に高速)

Node.jsは,リアルタイムで大量データを扱うサービス(例えばチャットとか)には向いているが,CPUリソースが大量に必要だったり,あまりイベントが発生しないような場合にはそれほどメリットは無いともいえる.