間違った URL を入力した際、『ページが見つかりません』と表示するよう、Express で設定します。

前回のコードを使います。

const express = require("express");
const app = express();

app.use(express.urlencoded({ extended: true }));

app.get("/menu", (req, res, next) => {
  res.send(
    '<form action="/" method="POST"><input type="text" name="menu"><button type="submit">送信</button></form>'
  );
});

app.post("/", (req, res, next) => {
  res.send(req.body);
});

app.listen(8000, () => console.log("Server is running ..."));

Express は、上から実行されます。

上のコードでは、『/menu』の URL ではフォームを実行し、次に『/』の URL に遷移します。

『/menu』以外の URL では、一番下まで到達し、プログラムが終了します。

つまり、app.postapp.listenの間に、『/menu』以外の場合の処理を設定すれば機能するはずです。

まずは、app.use を作成します。

その際、URL は書かないようにします。

app.use((req, res, next) => {
});

次に、『

ページが見つかりません

』を設定します。

app.use((req, res, next) => {
  res.send("<h1>ページが見つかりません</h1>");
});

URL が見つからない場合、エラーコード 404 が発生するので、status()で『404』を設定します。

app.use((req, res, next) => {
  res.status(404).send("<h1>ページが見つかりません</h1>");
});

サーバーを起動して、ブラウザに適当な URL で実行してみましょう。

image2

『ページが見つかりません』と表示されました。

全文は、以下の通りです。

const express = require("express");
const app = express();

app.use(express.urlencoded({ extended: true }));

app.get("/menu", (req, res, next) => {
  res.send(
    '<form action="/" method="POST"><input type="text" name="menu"><button type="submit">送信</button></form>'
  );
});

app.post("/", (req, res, next) => {
  res.send(req.body);
});

app.use((req, res, next) => {
  res.status(404).send("<h1>ページが見つかりません</h1>");
});

app.listen(8000, () => console.log("Server is running ..."));
ブログ一覧