なんだかGoodVibes

日々の勉強メモです。

【Node】htmlを読み込んで表示する(httpモジュール)

こんにちは。
本日は、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



以上です。