Windows AzureユーザーのためのNode.js HTTPモジュールの基礎

CodeZine / 2012年5月30日 14時0分

図5:Expressの実行例

 本稿では、Windows Azure SDK for Node.jsを使ったNode.jsのHTTPサーバーの基本機能について紹介します。

■はじめに

 前回はNode.jsの基本について説明しました。今回も引き続きWindows Azureから少し離れて、Node.jsのHTTPモジュールを中心に説明していきます。

■対象読者

 今回の対象読者は以下の通りです。

Node.jsに興味がある方 前々回前回連載内容程度のWindows AzureとNode.jsの知識 ■必要な環境

 Node.jsの実行環境として以下を利用します。

Windows Azure SDK for Node.js ■HTTPサーバ

 前々回では、Windows AzureでNode.jsを動作させるために簡単なHTTPサーバの実行例を紹介しましたが、HTTPサーバの作成から、リクエストイベントの登録、リッスンまでを1行で同時に行っていました。ここで紹介するリスト1は基本的に同じ動作ですが、解説するために細かく処理を分離して記述した例です。

[リスト1]HTTPサーバのサンプル(sample1.js)
//(1)HTTPモジュールの読み込み var http = require('http'); //(2)HTTPサーバの作成 var server = http.createServer(); //(3)requestイベントの登録 var listener = function(request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World '); }; server.on('request', listener); //(4)サーバの起動 server.listen(8124); console.log('Server running at http://127.0.0.1:8124/');
 処理の流れを説明します。

 (1)は、Node.js標準のHTTPモジュールを読み込みます。HTTP関連のAPIはHTTPモジュールで提供されています。

 (2)は、http.createServerメソッドを呼び出し、http.Serverオブジェクトを生成します。

 (3)は、http.Serverオブジェクトに、requestイベントを登録しています。requestイベントはクライアントからのコネクションの度に生成され、http.ServerRequestオブジェクト、http.ServerResponseオブジェクトを受け取ります。これらのオブジェクトの詳細については後述します。また、requestイベント以外にも、http.Serverオブジェクトが発行するイベントはいくつかあり、それらを下表に示します。

http.Serverクラスのイベント
イベント名 発生タイミング request クライアントからのリクエスト時 connection 新しいTCPストリームが確立された時 close サーバがクローズした時に生成 checkContinue HTTPのExcept:100-continueリクエストがある時 upgrade HTTPヘッダにUpgradeヘッダがある場合 clientError クライアント接続がエラーになった時
 (4)最後に、listenメソッドにポート番号を指定して、サーバを起動します。



■関連記事
Windows AzureユーザーのためのNode.js HTTPモジュールの基礎
CoffeeScriptベストプラクティス集 ブラウザ向けJavaScript編(4)
Elastic MapReduceとHiveの概要と利用準備
CoffeeScriptベストプラクティス集 ブラウザ向けJavaScript編(3)
CoffeeScriptベストプラクティス集 ブラウザ向けJavaScript編(2)

■記事全文へ

CodeZine

トピックスRSS

ランキング