我想创建一个页面的路由,该页面将根据
id
中存储的内容而变化。但是,我也希望页面 URL 与 id
完全不同。我目前有一个工作路线:<Route path="/schedule/:url" element={<SchedulePage />} />
。这正确地将路径设置为“website.com/schedule/”+ url
中存储的任何内容。问题是:在我的 SchedulePage 中,我想显示从 id
获取的信息。我能找到的唯一方法是使用参数,但我想将 id
保留在我的网址之外。如何将 id
作为参数传递给路由而不将其包含在 url 中?
我尝试将路线更改为
<Route path="/schedule/:url/:id?" element={<SchedulePage />} />
,希望它不会包含 id,但这根本不起作用。
更新:
我在 STerliakov 的帮助下找到了解决方案(请参阅下面的评论来阅读我们的对话。)
我需要的是 Mongoose 函数
findOne()
。利用这个,我能够实现我希望实现的目标;创建一个唯一的、用户定义的字符串,其用途与 _id
(可用于查找任何一个对象的唯一锚点。)
通过使用 Mongoose 函数
.findOne
,您可以使用唯一值来查找对象。通过将用户选择的字符串设置为类似 url
的内容,您可以使用以下代码:
Schedule.findOne({url});
这有效地生成了类似于
_id
的值,可用于查找特定对象,但是 url
值 必须 是唯一的。对于我来说这不是问题,因为无论如何我都想使用该值来生成唯一的页面 URL。在过去的两个小时里我学到了很多东西。