「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をアクセスすると次のブラウザに次の内容が表示されます。