node.jsのHTTPサーバ
HTTPサーバを作成します。まず、httpモジュールを読み込んで、createServer関数からWebサーバオブジェクトを返しています。
以下、例です。

var http = require('http');
var server = http.createServer(function(req, res){
   res.writeHead(200, {'Content-Type': 'text/html'});
   res.write('Hello World\n');
   res.end();
});
server.listen(8084,"127.0.0.1");
上記をserver.jsとして保存します。コマンドプロンプトから以下のように実行します。



writeHeadで、HTTPステータスコードとレスポンスヘッダ(第3引数)を送信しています。第2引数でreasonPhraseを指定できますが、上記では省略しています。
writeHeadは1回だけ呼び出すメソッドで、write()やend()よりも前で呼び出す必要があります。

http.Server
createServer関数の戻り値はhttp.Serverクラスです。このクラスにはlisten関数があり、第1引数にポート、第2引数にホスト名を指定します。
ホスト名は省略可能ですが、サーバはどんな IPv4 アドレスへの接続も受け入れます。

createServer関数の第1関数に渡したコールバック関数は、イベントが起きたときに実行されます。
以下のソースをみてください。

var http = require('http');
var server = http.createServer(function(req, res){
    console.log('call back');

    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('Hello World\n');
    res.end();
});
server.listen(8084,"127.0.0.1");

console.log('server start');
このソースを実行すると、標準出力にserver startと表示されます。
つぎにブラウザからアクセスすると、初めてコールバック関数が呼ばれているのがわかります。
以下、実行結果です。call backと2回表示されるのはfaviconもロードするためだそうです。

C:¥>node server.js
server start
call back
call back

Back to top

Information