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 は本文を送信してレスポンスを終了するため、その前にステータスを設定します。
チャレンジ
簡単Expressについてさらに学ぶ前に、Node独自のnode:httpモジュールを使って小さなサーバーを書き、Expressが代わりに行ってくれる処理を確認しましょう。
server.jsで、http.createServerに渡す関数の中からreq.urlを確認します。値が/の場合は、テキストHomeを送信します。- それ以外のすべてのパスでは、ステータスコードを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');
});
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Expressの基礎のすべてのレッスン
自分で練習してみよう: Expressプレイグラウンド