以下は Node.js の標準モジュールである http
モジュールを使用して、簡単な Web サーバを立ち上げるサンプルです。
node
コマンドで実行し、localhost:51200
というアドレスに Web ブラウザでアクセスすると、Hello World と表示します。
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Hello World\n');
res.end();
});
server.listen(51200);
console.log('Server running at localhost:51200');
http.createServer()
に渡した関数は、リクエストを受けるたびに呼び出されます。
ポート番号 80 で listen()
するためには、root
ユーザである必要があります。
$ node server.js
Server running at localhost:51200
$ curl localhost:51200
Hello World
$ curl -i localhost:51200
HTTP/1.1 200 OK
Content-Type: text/plain
Date: Mon, 19 Nov 2012 12:45:07 GMT
Connection: keep-alive
Transfer-Encoding: chunked
Hello World
http.createServer()
で作られる http.Server
オブジェクトは、EventEmitter を継承しており、on()
メソッドを使って様々なイベントハンドラを登録することができるようになっています。
ここまでのサンプルでは、http.createServer()
のパラメータで、リクエストを処理するための関数を指定していましたが、これは on()
メソッドを使って request イベントのハンドラを登録する処理のショートカットになっています。
下記の例では、request
イベントのハンドラを、on()
メソッドを使用して登録しています。
var http = require('http');
var server = http.createServer();
server.on('request', function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Hello World\n');
res.end();
});
server.listen(51200);