こんにちは。
本日は、Nodeでhttpモジュールを使用して
htmlを表示する方法をメモ。
概要
2つのhtmlを用意してアクセスに応じて画面を表示する。
アクセス先に応じたhtmlを以下とする。
- /login → login.html
- /home → home.html
サンプルソース
今回はhttpモジュールを使用してサーバを構築しています。
htmlの読み込みにはfsモジュールを使用しています。
const fs = require('fs'); const http = require('http'); var server = http.createServer(); // 「request」イベントに処理を割り当て // リクエストを受け取った際に発火 server.on('request', (req, res) => { switch(req.url) { case '/login': fs.readFile('./login.html', 'utf-8', (err, data) => { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); break; case '/home': fs.readFile('./home.html', 'utf-8', (err, data) => { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); break; } }); server.listen(3000, () => { console.log('Start!'); });
備考
http.Serverが持つイベントが気になったので調べてみました。
- checkContinue
- 100-continueのHTTP Expectヘッダーを受信した際に発火するイベント
- checkExpectation
- 100-continue以外のHTTP Expectヘッダーを受信した際に発火するイベント
- clientError
- クライアント接続が「error」イベントを発行した際に発火するイベント
- close
- サーバがクローズした際に発火するイベント
- connect
- クライアントがHTTP CONNECTメソッドをリクエストした際に発火するイベント
- connection
- 新しい TCP ストリームが確立された際に発火するイベント
- request
- リクエストを受信した際に発火するイベント
- upgrade
- クライアントがHTTPアップグレードを要求した際に発火するイベント
参考
- http.createServer
HTTP | Node.js v16.8.0 Documentation
- http.Server
HTTP | Node.js v16.8.0 Documentation
以上です。