拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
Node.jsを学ぶ(その2・Webサーバー作成の基本)
Node.jsの主な使い道は、Webアプリケーションを作ることです。
今回は、その第一歩として、Node.jsのプログラムをWebサーバーとして動作させる際の基本を解説します。
1.httpモジュールを読み込む
Node.jsでは、プログラム自身をWebサーバーとして動作させることができます。
プログラムがメモリに常駐し、クライアントからのリクエストを直接に処理して、レスポンスを返します。
Webサーバーの機能を使うには、まず「http」というモジュールを読み込みます。
それには、「require」という関数を使い、以下のように書きます。
読み込んだモジュール(のオブジェクト)が変数に代入されます。
var http = require('http');
2.http.Serverクラスのオブジェクトを作成する
次に、「http.Server」というクラスのオブジェクトを作成します。
httpに対して「createServer」というメソッドを実行すると、http.Serverのオブジェクトを作成することができます。
var server = http.createServer(リスナー);
「リスナー」には、リクエストを処理する関数を指定します。
リスナーは後で作成します。
3.リクエストを待つ
次に、クライアントからのリクエストを待つ状態にします。
これは、http.Serverオブジェクトの「listen」というメソッドで行います。
listenメソッドの書き方はいくつかありますが、以下の書き方を使うことが多いと思います。
server.listen(ポート番号);
「ポート番号」には、リクエストを受信する際のポート番号を指定します。
HTTPの標準のポート番号は80番ですが、すでにApache等が80番を占有していることもありますので、今回は8080番を使うことにします。
4.リスナーを作る
次に、リクエストを処理する関数(リスナー)を作ります。
リスナーには、リクエストとレスポンスを処理するために、2つのパラメータが渡されます。
今回は、リクエストの情報は使わずに、単に「Hello, Node.js」というレスポンスを返すだけのリスナーを作ってみます。
レスポンスのオブジェクトには、レスポンスを関連のプロパティやメソッドがあります。
以下のプロパティとメソッドを使うことが多いと思います。
プロパティ/メソッド | 内容 |
---|---|
statusCodeプロパティ | 送信するステータスコード(200や403など) |
setHeaderメソッド | レスポンスヘッダーを設定する |
writeHeadメソッド | ステータスコード/レスポンスヘッダーをまとめて送信する |
writeメソッド | レスポンスを送信する |
endメソッド | レスポンスの送信を終了する |
今取り上げている例だと、リスナーの関数を以下のようにします。
function listener(request, response) { response.statusCode = 200; response.setHeader('Content-type', 'text/plain'); response.write('Hello, node.js'); response.end(); }
また、statusCode/setHeaderの代わりにwriteHeadを使って、以下のようにしても良いです。
function listener(request, response) { response.writeHead(200, { 'Content-Type': 'text/plain' }); response.write('Hello, node.js'); response.end(); }
5.プログラムの完成
ここまでの話をまとめると、「Hello, Node.js」とレスンポンスを返すだけのプログラムは、以下のようになります。
var http = require('http'); var server = http.createServer(listener); server.listen(8080); console.log('Server start'); function listener(request, response) { response.statusCode = 200; response.setHeader('Content-type', 'text/plain'); response.write('Hello, node.js'); response.end(); }
上記のソースコードをテキストエディタで入力し、「hello.js」というファイル名で保存します。
なお、5行目の「console.log」は、ターミナルにメッセージを出力するメソッドです。
6.動作の確認
ターミナル等を起動してコマンド入力できる状態にし、hello.jsファイルがあるディレクトリをカレントディレクトリにします。
そして、「node hello.js」と入力して、プログラムを実行します。
実行すると、ターミナルに「Server start」と表示された後、待ち状態になります。
ここで、Webブラウザを起動して、「http://localhost:8080」のアドレスに接続します。
すると、Webブラウザに「Hello, Node.js」と表示されます。
テストが終わったら、ターミナルでCtrl+Cキーを押してプログラムを終了します。