技術系

Nodeをちゃんと学ぶ -HTML表示編-

技術系

こんにちは、なかにしです。

前回はサーバーを立てて簡単なテキストを表示させてみました。

今回は事前に書いたHTMLを表示させてみようと思います!
いざ行かん!

HTML作成

事前にHTMLを作成します。
中身は適当で大丈夫です。

今回はこんな感じ↓

<!DOCTYPE html>
<html lang="ja">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>

  <body>
    <h1>こんにちは、なかにしです。</h1>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
    <p>みんな元気してる~???</p>
  </body>

</html>

やたら元気かどうか確かめます。
10秒で作りました。

こちらを表示していきます!

server.jsを修正

前回は
①サーバーを作る
②HTMLを作ってテキストを書き込む
③表示

でしたが、今回は
①サーバーを作る
②HTMLを読み込む
③表示

という流れでやっていきます!

早速修正~

const http = require("http");
const fs = require("fs");

// サーバーを作る
const server = http.createServer();

// サーバーに対して何をするか書く
server.on("request", function (request, response) {
  fs.readFile("./sample.html", "utf-8", function (error, data) {
    response.writeHead(200, { "content-Type": "text/html" });
    response.write(data);
    response.end();
  });
});

// サーバーを8080で起動
server.listen(8080);

ファイルのを読み込むため、「fs」というものを使用します。

fsの文法は↓なので、コレに則ります。

fs.readFile( ファイルのパス , エンコード , コールバック関数 );

コールバック関数は引数を2つ取り、それぞれ「エラー」と「読み取った内容」です。

今回の記述だと、
エラーが起きた場合は中身が「error」に、
読み取った「sample.html」の中身が「data」に入ります。

読み取った「data」を「write」メソッドで書き出し、HTMLの内容を表示するようにしています。

もしエラーをキャッチして何かする場合はその処理も書きます。↓

const http = require("http");
const fs = require("fs");

// サーバーを作る
const server = http.createServer();

// サーバーに対して何をするか書く
server.on("request", function (request, response) {
  fs.readFile("./sample.html", "utf-8", function (error, data) {
    if (err) {
      console.log("エラーです。", error);
    }
    
    response.writeHead(200, { "content-Type": "text/html" });
    response.write(data);
    response.end();
  });
});

// サーバーを8080で起動
server.listen(8080);

サーバー起動して確認

お待ちかね!確認タイムです!
以下コマンドでサーバーを起動し、確認します。
※変更内容はサーバーを立ち上げ直さないと反映されないです。

node server.js

心配性のHTML、表示成功です!

次はテンプレートエンジンの「ejs」についてやってみます!

タイトルとURLをコピーしました