1. ホーム
  2. node.js

Expressでオプションのルートパラメーターが複数ある?

2023-11-22 04:14:25

質問

Express を使用して、次のような形式のルートを処理しています。 /articles/:year/:month/:day という形式で、年、月、日は任意です。

  • 3つのパラメーターのいずれも与えられない場合、すべての記事が返されます。
  • yearが与えられた場合、その年の記事が返されます。
  • 年と月が指定された場合、その年と月の記事が返されます。
  • 3つのパラメータが全て与えられた場合、その年、その月、その日の記事が返されます。

私の質問は、どのようにそれらをオプションにするかということです。私が定義した現在のルートでは、3つのパラメータがすべて存在しない限り、解決することができず、デフォルトルートに分類されます。

どのように解決するのですか?

この expressjsのガイド をルーティングのメンションにする。

エクスプレスは path-to-regexp を使います。 の定義で可能なことについては path-to-regexp のドキュメントを参照してください。 を参照してください。 Express Route Tester (ルートテスター) は、基本的な パターンマッチをサポートしませんが、基本的な Express ルートをテストするのに便利なツールです。

基本的には ? 文字を使用してパラメータをオプションにすることができます。

/articles/:year?/:month?/:day?