本記事では、Expressで存在しないページにアクセスした時のルーティング設定の方法について解説しています。
Node.js / Expressの学習におすすめ参考書
Node.js超入門 第3版
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
後輩ちゃん
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!
存在しないページのルーティング設定
ルーティング設定に該当しないページにユーザーがアクセスした時に、何かしらのページを表示させたい場合は以下のように記述します。
app.get("*", (req, res) => {
/* 処理を記述 */
});
パスを指定する第一引数にワイルドカードの「*」を設定します。すると、ルーティング設定していないパスにアクセスした時に処理が実行されます。
注意点として、ルーティング設定の最後に設定する必要があります。その理由は、ルーティングは上から順にマッチしたものを表示させるため、先頭やルーティングとルーティングの間に設定してしまうと後続に記述されているものに一切該当しなくなります。
const express = require("express");
const app = express();
/*** ▼NG設定 ***/
app.get("*", (req, res) => {
res.send("<h1>存在しないページ</h1>");
});
app.get("/contact", (req, res) => {
res.send("<h1>Contact</h1>");
});
app.get("/", (req, res) => {
res.send("<h1>Top</h1>");
});
/*** ▼OK設定 ***/
app.get("/contact", (req, res) => {
res.send("<h1>Contact</h1>");
});
app.get("/", (req, res) => {
res.send("<h1>Top</h1>");
});
app.get("*", (req, res) => {
res.send("<h1>存在しないページ</h1>");
});