JavaScript
Node.js

今更ながらNode.jsに触れてみた

More than 3 years have passed since last update.


まずはじめに

ほんと最近ですが,Node.jsにお触りしました.

折角なので,頭の中で整理をつけるためにも書いていこうと思います.

お付き合いください.


Node.jsとは

端的に言えば,サーバサイドで動作するJavaScriptの環境です.

大量のリクエストを高速で処理できる…そんなWebアプリの開発が可能です.

なぜに大量の処理を速くできるの?という話になりますが,

要因として,シングルスレッド方式ノンブロッキングI/Oを採用しているからだと言えますが,ひとまずここについては説明を省きます.


環境構築

環境構築って嫌ですよね.ハマったら最後,迷宮入り.

でもNode.jsはそんなことありません.とっても簡単なのです.

以下に示します.(Vagrant/CentOS6.4の環境下で行っています)


NVM(Node Version Manager)のインストール

これは,Node.jsのバージョンの切り替えを簡単にできるツールです.

Node.jsは頻繁にバージョンが上がっていくので,まぁ必須です.

ただ,nodebrewのようなのもあるので,何を使うかはお任せします.

インストールするにはコマンドラインで以下の2つを実行してください.

$ git clone https://github.com/creationix/nvm.git ~/.nvm

$ source ~/.nvm/nvm.sh

その後,ヘルプが表示されるか確認してみましょう.

$ nvm help

Node Version Manager

エラーが出なければ成功です.


nvmでnode.jsをインストール

まず,nvm ls-remoteでインストールできるバージョンを確認してみましょう.

$nvm ls-remote

v0.1.14
v0.1.15
v0.1.16

v0.12.7
v0.12.8
v0.12.9

このようにドドドと表示されます.(2015/12/22現在)

この中からバージョンを選んでインストールしましょう.

$ nvm install v0.12.9

終わったらば,確認を…

$ node -v

v0.12.9

バージョンが無事表示されればバッチリです.

また,NVMはその名の通り,バージョンの管理ができるので,いくらでもインストールできます.

自分がインストールしてきたバージョンを確認したい場合は,

$ nvm ls

で確認できます.

その中で使用するバージョンを切り替えたい場合は

$ nvm use v0.12.7

のように指定してあげれば簡単にできます.


nvmの設定

Node.jsのデフォルトのバージョンを指定しましょう

nvm alias default v0.12.9

次に,環境を再度立ち上げた時にnvmコマンドが実行できるよう,bash_profileへ追記しましょう.

(やらないとまた設定をし直すはめに…)

vi ~/.bash_profile

if [[ -s ~/.nvm/nvm.sh ]];
then source ~/.nvm/nvm.sh
fi

環境構築は以上です.


それでは定番の…

Hello World の時間です.

適当にhello.jsなど作って以下のソースコードを記述しましょう.


hello.js

var http = require('http');

var server = http.createServer();
server.on('request', function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Hello World');
res.end();
});
server.listen(2525,'192.168.33.10');
console.log("The server is now running.");

解説すると…

まず,node.jsが提供しているhttpモジュールを,オブジェクトとして読み込みます.

これは色々な場面で使うので,書くのが定番らしいです.

var http = require('http');↲

そして,http.Serverのインスタンスを作ってサーバを作ります.

var server = http.createServer();

次に,onでserverとイベントと紐付けします.

イベントの種類はrequestなので,アクセスする度に以下のコールバック関数が呼び出されます.

この場合,第二引数のres(response)が返ってくる値になるため,

res.writeで'Hello World'を書き込んでください.

今回書き込みたい情報は,”Hello World”という文字列だけです,

なので,writeHeadには,成功を意味する200のステータスコードに加え,

Content-Typetext/plainに設定しましょう.あと,最後のendは忘れずに…

server.on('request', function(req, res) {↲

res.writeHead(200, {'Content-Type': 'text/plain'});↲
res.write('Hello World');↲
res.end();↲
});↲

サーバが待ち受けるポート番号(任意)とIPアドレスを指定してあげましょう

ちなみにVagrantで設定してるIPアドレスを入れています.

server.listen(2525,'192.168.33.10');↲

だらりと説明してしまいましたが,こんな感じです.

早速,実行してみましょう.

基本的に node [file_name]で可能です.

$node hello.js

The server is now running.

コンソールログが出てきました.いいかんじ.

ではでは,ブラウザで http://192.168.33.10:2525 にアクセスしてみましょう!

そこには…

Hello World

出ているはずです.お疲れ様でした.


最後に言いたいこと

今回はNode.jsの環境構築からhelloworldまで載せました.

ちょっと物足りないかもしれません.

簡単なチャットアプリについても載せたかったのですが…

疲れたのでやめます(笑)

普段全く投稿しないので体力不足ですね…

またNode書いて投稿します.

見てくれてありがとうございました!


参考