なんだかGoodVibes

日々の勉強メモです。

ルーティングについて

ルーティングとは
どのアドレスにアクセスしたら、どのような内容を表示するか
といったことを定義するための仕組みです。

例えば、クライアントが ”/” にアクセスしたらAを返す。
クライアントが "other" にアクセスしたらBを返すといったことです。

JavaScript では「URL」というオブジェクトを使用したら簡単にサンプルを作れます。
まず、サンプルを記載します。

作成するのは以下の3ファイル。

  • sample.js
  • index.html
  • other.html

今回、html ソースは割愛します。

  • sample.js
const http = require("http");
const fs = require("fs");
const url = require("url");

var server = http.createServer(switchProcess);

server.listen("ここにポート番号を記載");
console.log("Server Start!");

// createServer の処理
function switchProcess(request, response){

    var url_parts = url.parse(request.url);
    switch(url_parts.pathname){

        case "/":
            fs.readFile("./HTML/index.html", "UTF-8",
            (error, data) => {
                response.writeHead(200, {"Content-Type" : "text/html"});
                response.write(data);
                response.end();
            });

            break;

        case "/other":
            fs.readFile("./HTML/other.html", "UTF-8",
            (error, data) => {
                response.writeHead(200, {"Content-Type" : "text/html"});
                response.write(data);
                response.end();
            });

            break;

        default:
            response.writeHead(200, {"Content-Type": "text/plain"});
            response.end("no page...");
            break;
    }
}

内容について見ていきましょう。
まず、以下の処理でドメイン以下のパス部分の値をチェックします。

var url_parts = url.parse(request.url);

次に、取得したドメイン以下のパスを利用して分岐します。

switch(url_parts.pathname){

    case "/":
        // "/"にアクセスした場合の処理
        break;

    case "/other":
        // "/other"にアクセスしたときの処理
        break;

    default:
        // 上記以外にアクセスした場合の処理
        break;
}

switch内のcaseはいくつでも増やすことができます。
このような感じで簡単にルーティングができます。