繁体   English   中英

快速 JS 路由

[英]Express JS Routes

初学者问题在这里。 我想构建一个应用程序,该应用程序将成为 70 家连锁餐厅的内部网。 我需要的是让每个实体餐厅位置查看发布到 MongoDB 数据库的数据,并显示在商店页面上挂在墙上的屏幕上。 这些数据将特定于每个位置,例如公告、需要由该商店填写的餐饮订单等......我的问题是,我如何创建路线,以便每个单独的商店只能看到他们的数据而无需创建70 条不同的路由还是使用身份验证来利用用户 ID?

试图避免用户登录和:

“/store1” “/store2” “/store3” 等等...

好像我可以查询站点 ID 或类似的东西

希望这使自。

如果您正在谈论所有 70 家餐厅都可以访问的一个位于中心的服务器,并且您希望所有餐厅都拥有相同的路线,那么您需要从请求中破译一些其他线索,以确定是哪家餐厅正在制作要求。

由于您已取消身份验证,我将假设这里没有安全问题 - 这是在只能由餐厅员工访问的内部网上。

因此,以下是您可以从任何给定请求中获得的线索,以决定要显示哪个餐厅的数据:

  1. 包含所需餐厅 ID 的 Cookie。
  2. 包含所需餐厅 ID 的查询参数。
  3. 请求的 IP 地址,以识别请求来自哪个餐厅。
  4. 每个餐厅的单独子域(都指向同一主机)。

以下是有关每个选项的更多信息:

曲奇饼

在这个实现中,如果客户到达时没有为餐厅 ID 设置 cookie,那么您将他们带到一个打开页面,在那里他们选择他们想要查看的餐厅的数据,然后您要求用户手动选择所需的餐厅。 然后,您在该浏览器中设置一个持久的 cookie,从那时起(只要 cookie 没有被删除),您的服务器可以默认只显示他们餐厅的信息。

查询参数

在此实现中,您使用一些初始餐厅规范,如 cookie 选项,然后生成页面,其中所有链接都指定了一个查询参数,其中列出了餐厅 ID(可能使用模板系统)。 如今,与普通的 cookie 系统相比,这通常不受青睐。

IP地址

如果您所有的餐厅都有自己的子网(大概是某种宽带连接通过某种专用连接连接到中央服务器,那么您也许可以构建一个小餐厅源 IP 地址表,以便您可以识别哪个餐厅正在制作请求完全由请求的 IP 地址决定。这可能可行,也可能不可行,具体取决于您的网络拓扑。这将比任何其他选项更自动。

单独的子域

这有点像基于 cookie 的选项,但不是设置 cookie,一旦选择了所需的餐厅,您将重定向到特定于该餐厅的子域。 所有子域仍将指向同一主机,但主机可以从发出请求的子域中识别所需的餐厅。 与查询参数选项类似,您需要在服务器端使用一些模板系统来重写所有链接以包含正确的子域,以便您在导航时保持在同一个子域中。


在所有这些选项中,IP 地址方案是唯一一种完全自动的方案,但根据您的网络拓扑结构可能可行,也可能不可行。 在其他选择中,cookie 是最容易实现的,因为页面链接本身不必重写。


企业配置

在您“管理”任何获准使用的浏览器的企业场景中,您还可以预先配置每家餐厅的浏览器以自动提供一些标识(自定义标题或 cookie),并且您的服务器可以使用该识别信息来确定哪家餐厅正在做出选择。 这将需要仅通过预先配置、批准和正确维护的浏览器访问您的站点(这可能比它的价值更痛苦)。

例如,以下是如何为 Microsoft Edge 的所有请求配置自定义标头

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM