Menu
CoddyTech

httpモジュール

CoddyのNode.jsジャーニー「Expressの基礎」セクションの一部。レッスン 2/23。

Express は、目に見えないところで処理を行ってくれます。その働きは、Express の基盤となっている Node 独自の node:http モジュールを見るとわかります。

import http from 'node:http';

const server = http.createServer((req, res) => {
    if (req.url === '/repairs') {
        res.statusCode = 503;
        res.end('Repairs are closed today');
        return;
    }
    res.end('Welcome to the bike shop');
});

server.listen(3000);

Node はリクエストごとにこの関数を呼び出します。ルートはありません。自分で req.url、つまりリクエストされたパスを比較します。res.statusCode はステータスコードで、処理の結果を示す数値です。200 は OK、404 は見つからないことを意味します。res.end は本文を送信してレスポンスを終了するため、その前にステータスを設定します。

challenge icon

チャレンジ

簡単

Expressについてさらに学ぶ前に、Node独自のnode:httpモジュールを使って小さなサーバーを書き、Expressが代わりに行ってくれる処理を確認しましょう。

  1. server.jsで、http.createServerに渡す関数の中からreq.urlを確認します。値が/の場合は、テキストHomeを送信します。
  2. それ以外のすべてのパスでは、ステータスコードを404に設定し、テキストNot foundを送信します。送信する前にステータスを設定してください。レスポンスを終了した後は、ステータスを変更できません。

試してみましょう:「実行」を押して、/を送信します。ステータス200でHomeが表示されるはずです。次に/nope、続いて/recipes/todayを送信します。どちらもステータス404でNot foundが表示されるはずです。レッスン1では、Expressが代わりにこの404を送信しました。ここでは自分で書きます。

自分で試してみよう

import http from 'node:http';

const server = http.createServer((req, res) => {
    // / には Home を返し、それ以外のすべてのパスには 404 Not found を返す。
    res.end('Hello from Node');
});

server.listen(3000, () => {
    console.log('Listening on port 3000');
});
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Expressの基礎のすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド