【发布时间】:2017-06-03 20:01:54
【问题描述】:
我正在使用 Express 处理格式为 /articles/:year/:month/:day 的路线,其中年、月和日是可选的。
- 如果三个参数都没有给出,则返回所有文章;
- 如果指定年份,则返回该年份的文章;
- 如果给出年份和月份,则返回该年份和月份的文章;
- 如果三个参数都给出,则返回该年、月、日的文章。
我的问题是,如何使它们成为可选的?以我定义的当前路由,除非三个参数都存在,否则无法解析,会落入默认路由。
【问题讨论】:
-
您可以为存在年份、年份和月份、所有参数都存在且不存在的情况定义多个路由,也可以将参数移动到查询字符串中
-
您也可以通过在它们后面加上
?来使它们成为可选 -
@VsevolodGoloviznin 感谢您的建议。它们真的很有帮助,并且非常适合我的用例。我最终选择了 hjpotter92 的解决方案,因为它也很安静优雅并且导致代码更短。再次感谢您的帮助。
-
@hjpotter92 感谢您的建议!无法相信我在阅读指南时错过了如此重要的信息。我肯定会再次去 RTFM。你想正式把你的答案写在下面吗?如果可以,我会接受。
-
@hjpotter92 这就是我想要的。从 2021 年起非常感谢