2013年10月5日土曜日

Node.jsでサーバサイド開発をシンプルに

Node.jsサーバサイドJavaScriptの実行環境です。
Node.jsを知らない人の多くが、「サーバ側でPHPやJavaみたいにJavaScriptが使えるようになっただけでしょ?」と思うようですが、実際はそうではありません。Node.jsはApacheやTomactのようなWebサーバやコンテナすら必要としない、とてもシンプルなJavaScript実行環境なのです。

例えば下のコードを見て下さい。Node.jsがどういうものなのか、すぐに理解できると思います。

これはNode.jsで動くHTTPサーバのHelloWorldです。

httpserver.js
var http = require('http');
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/');

なんと、たったこれだけのコードで WebサーバのHelloWorldが完成です。
ApacheやTomcat, PHPなどといったソフトウェアは一切インストールしていません。
Node.jsがどれだけシンプルなものなのか、お分かりになれたでしょうか。

httpserver.jsを起動するには、Node.jsをインストールしたのちに、httpserver.jsの置いてあるパスまでcdして下のコマンドを実行するだけです。

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

httpserver.jsを起動後に http://127.0.0.1:1337/ へアクセスすると、画面に Hello World が表示されます。

アプリを落としたい時は、ターミナル画面から Ctrl+C で強制終了させてください。



ChromeでNode.jsアプリをデバッグ


Chromeブラウザにはとても優秀なJavaScriptデバッガが搭載されていますが、Node.jsアプリの開発でもこれを有効利用することができます。
Chromeでのデバッグを有効にするには、まずは npm (Node.jsのパッケージ管理ツール)を利用して node-inspector というツールをインストールします。

$ npm install -g node-inspector

上のコマンドを実行したらnode-inspectorのインストールが開始されます。
インストールが終わったら、さきほど作ったhttpserver.jsをデバッグモードで起動しておきます。

$ node --debug httpserver.js
  Server running at http://127.0.0.1:1337/

そしてターミナル画面をもう一枚開いて、下のようにnode-inspectorを実行します。下の例ではport番号を明示的に「99999」で指定してみました。

$ node-inspector --web-port=99999
Node Inspector v0.5.0
   info  - socket.io started
Visit http://127.0.0.1:34463/debug?port=5858 to start debugging.

Chromeブラウザで http://127.0.0.1:34463/debug?port=5858 にアクセスすれば、普通のJavaScriptのようにデバッグ実行が可能になります。

サーバサイド開発といえばLAMP開発が定番で枯れた方法ですが、何だかんだでインストールやら設定やらは面倒くさいものですし、あまりスマートなやり方とはいえません。
そこにきて、Node.jsはサーバサイド開発の新たな定番となりつつあるようです。
やっぱり何ごともSimpleが一番ですね。

0 件のコメント:

コメントを投稿