node.jsなんぞまったくわからない自分が0からnode.jsに触れてみる

休みボケ防止も兼ねて。

かなり後発ですが、Javascriptだけで開発できて、しかも非同期・シングルスレッドってことで、これはとりあえず触っておかないと。と思い、一通り試してみました。
公式のサンプルではlocalhostで動かしているようなのですが、今回はさくらVPSに構築したバーチャルホスト上で同じソースを動かしたかったので、プロキシとか使って実現しています。

1.下準備

とりあえずnode.jsはgitから落とすらしいので、gitをインストールする前に、その依存モジュール( curl、zlib、openssl、expat、libiconvあたり)を入れておかなくてはいけないらしい。

$ yum intall curl-devel expat-devel gettext-devel openssl-devel zlib-devel

2.gitのインストール

yumでインストールできるようなので、今回はそれを採用

$ yum install git-core

3.gitからnode.jsをダウンロード

$ git clone git://github.com/ry/node.git

成功するとnodeってディレクトリが作成される

4.configuireを実行する

$ cd node/
$ ./configuire
Checking for program g++ or c++          : /usr/bin/g++
Checking for program cpp                 : /usr/bin/cpp
Checking for program ar                  : /usr/bin/ar
Checking for program ranlib              : /usr/bin/ranlib
Checking for g++                         : ok 
Checking for program gcc or cc           : /usr/bin/gcc
Checking for gcc                         : ok 
Checking for library dl                  : yes
Checking for openssl                     : yes
Checking for library util                : yes
Checking for library rt                  : yes
Checking for fdatasync(2) with c++       : yes
'configure' finished successfully (1.900s)

5.makeする

$ make
$ sudo make install

6.確認する

$ node -v
v0.5.11-pre

いけた。

7.サンプルソースを参考にjsファイル作成

公式サイト(http://nodejs.org/)のものを動作させてみる。
example.jsというファイルを作成して、以下の内容を記述。

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

8.confファイルの編集

1337番ポートとか開けたくなかったので、プロキシ―で設定してみた。

<VirtualHost *:80>
    ServerName servername.com
    <Location />
        ProxyPass http://localhost:1337/
        ProxyPassReverse  http://localhost:1337/
        ProxyPassReverseCookieDomain localhost servername.com
    </Location>
</VirtualHost>

9.動かす

・サーバー側

$ node example.js
Server running at http://127.0.0.1:1337/

・クライアント(ブラウザ)側
confファイルで指定したServerNameでアクセス

成功するとブラウザ側に「Hello World」の記述が表示される。
みんなが言っている通りすごい簡単。
次はパッケージとか使ってみる。