【问题标题】:How to serve the same backend but with different database for every frontend app that is connecting to it如何为连接到它的每个前端应用程序提供相同的后端但使用不同的数据库
【发布时间】:2020-09-12 22:37:16
【问题描述】:

我希望将我的后端部署在服务器上并连接多个前端应用程序,但是每个人都有不同的数据库,有什么方法可以处理这个问题吗?我正在使用 Node、express、mongoose、mongodb。后端的逻辑应该是一样的,但是我需要为每个连接到后端的前端应用不同的db。

谢谢,我希望在这个论坛上提问是合适的,否则请告诉我在哪里可以找到有关此的更多信息。

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    您可以在请求的Host 标头中找到客户端尝试访问的域。如果每个应用程序都连接到不同的域,您可以使用它来区分它们。否则,您可以发送一个包含应用名称或标识符的查询参数,并以此区分它们。

    然后,当您启动应用程序时,您可能会拥有一个对象,其中应用程序名称或标识符作为键,数据库连接作为值,并根据创建该应用程序的应用程序选择要与之交互的数据库连接请求。

    【讨论】:

    • 我认为查询参数不安全,但我必须考虑请求 Header 方法。谢谢
    • @AlexAlexa,不一定是查询参数,它可以是您从客户端发送的自定义标头,例如 X-Application-ID 或类似的东西。这两种方法都不比另一种更安全,因为在所有情况下,服务器都会解释客户端发送的内容。任何客户端都可以发送查询参数、自定义标头或Host 标头。
    • 我明白了,谢谢你的建议,我必须看看我是否可以在后端创建一个处理程序,比如一个应该接受来自请求并将它们映射到特定数据库的域列表
    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 2020-06-17
    • 2021-03-03
    • 2021-04-30
    • 2016-07-11
    相关资源
    最近更新 更多