Node.jsバージョン6 をUbuntu 14.04 LTSにインストール 」でUbuntuにnode.jsをインストールしましたが、インストールしたnode.jsを使って、Webサーバーを作ってブラウザからアクセスし、あらかじめ登録されたhtmlファイルを表示させます。

Webサーバーの作成

node.jsでサーバとなる「webserver.js」を次に示します。

webserver.js

var http = require('http'),
fs = require('fs');
var server = http.createServer();
server.on('request', function(req,res) {
	fs.readFile('index.html', 'utf-8',function(err,data) {
		if(err){
			res.writeHead(404,{'content-Type': 'text/plain'});
			res.write("not found");
			return res.end();
}
	res.writeHead(200,{'content-Type': 'text/html'});
	res.write(data);
	res.end();
	});
});
server.listen(8080, '127.0.0.1');
console.log("server listening ...");
  • 1行目:httpモジュールの読み込み
  • 2行目:ファイル読み込み用のモジュールの読み込み
  • 4行目:server.onで取得したServerオブジェクトのリスナーとして、requestを受けたときに発火するrequestイベントを追加する。リスナーの追加には 次の形式のメソッドを使う。今回はeventに ‘request’ を指定する。 server.on(event, listener)
  • 5行目:fs.readFileで読み込みたいファイルの指定。「index.html」は「webserver.js」と同じディレクトリ。
    fs.readFile(ファイル名、文字コード,コールバック関数)

読み込むhtmlファイル「index.html」を次に示します

index.html

<!doctype html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title>TomoSoft</title>
</head>
<body>
	<h1>Node.js Read Html</h1>
</body>
</html>

node.jsの実行

作成した「 webserver1.js」を次のようにnode.jsで実行します。

ne@ne-ThinkPad-T410:~/node$ node webserver1.js
server listening ...

ブラウザから「http://127.0.0.1:8080」を入力してnode.jsをアクセスすると次のブラウザに次の内容が表示されます。

ブラウザからのアクセス