libro
www.tuyano.com
初心者のための Node.jsプログラミング入門

Node.js利用の準備を整えよう (1/6)

作成:2013-04-09 13:32
更新:2013-04-09 13:32

■Node.jsってどんなもの?

Node.jsは、JavaScriptで処理を実行できるサーバー環境です。「サーバー環境」というと、誰しもイメージするのは「Webサーバーがあって、そこにHTMLファイルとかが配置されている」といったものでしょう。「サーバーサイドの開発」といえば、PerlとかPHPとかいったプログラミング言語で書いたスクリプトを用意して、それらが公開されているアドレスにアクセスされるとスクリプトが実行される……というような感じで考えている人が多いと思います。

Node.jsは、そうした開発スタイルとはまったく違います。Node.jsは、まず「サーバーを作る」ところから始めます。え、サーバーそのものを作るの?と思った人。そうなんです。

PerlとかPHPとかいったものだと、サーバー環境というのは別にあって(Apache HTTP Serverとかxamppとか、聞いたことあるでしょう? あれです)、既にWebサーバーとして動いているプログラムの中に、「このアドレスにアクセスがあったら、これを実行するんだよ」といった、いわば「サーバーに用意しておく部品」の部分だけをちょこちょこっと作っていたのです。

ところがNode.jsは、「サーバープログラムとして実行されるスクリプト」そのものを作成します。そのスクリプトの中で「このアドレスにアクセスされたらこの処理を実行する」といった基本的な部分まですべて作るのです。ここが従来のサーバー開発のイメージと大きく異なる点です。

「サーバーそのものを作る? なんかすごく難しそうなんですけど」――うん、確かに。ただ、「サーバーを作る」といっても、Node.jsにはちゃんと「サーバーのオブジェクト」みたいなのがあって、それを用意するだけで作ることができるので、極端に難しいというわけではありません。そんなに難易度が高かったらこんなにも注目されることもないでしょうから。

Node.jsが注目されている理由、それは端的にいえば以下のようなものです。

サーバーサイドとクライアントサイドを一つの言語で開発できる。Webの開発というのは、とにかくあちこちの言語を組み合わせて継ぎ接ぎだらけで作っている感があります。が、Node.jsを使えば、サーバーからクライアントまですべて「JavaScriptだけ」で作れます。

従来のWebサーバーの問題の解消。従来タイプのWebサーバーでは、アクセスが集中すると、がくんと効率が落ちてしまいました。Node.jsは「イベントループ」方式をとることで、スケーリング(いきなり猛烈アクセスされたりしたときにも対応できる能力)に秀でていることを証明しました。

 まぁ、私たちシロウトが「Webアプリを作ってみるか」というとき、スケーリングが……といわれてもピント来ないかも知れません。けれど、「とにかく全部JavaScriptだけ」というのは、なかなかに魅力的じゃないでしょうか。

このNode.js、しばらく前までは、「じゃあ、ちょっと試してみようかな」と思った人がいたとしてもなかなか手が出せませんでした。理由は2つ。1つは「Linuxとかでないとダメ」だったから。WindowsやMacでちゃちゃっと使えないとやる気になれませんからね。そして2つ目は「本番環境がない」ということ。せっかく覚えても、そのへんのレンタルサーバーじゃNode.jsなんて動きません。自前でサーバーマシンを用意して公開すればいい? 冗談でしょ?

……そんなマニア向けの環境っぽかったNode.jsも、今ではWindowsやMac版もでき、誰でも簡単にインストールして使えるようになりました。そして本番環境も、「クラウド」を利用することで、誰でも無料でNode.jsによるサイト構築ができるようになってきました。アマチュアレベルでも手を出せる環境が整ったのです。もはや障害は何もありません。

いつやるの? 今でしょ!

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のための Node.jsプログラミング入門」に戻る