环回多租户数据库交换

ish*_*doo 6 multi-tenant loopbackjs

我想在我的loopback应用程序中实现多租户.现在,我正在尝试使用中间件重新定义我的数据源,以便根据请求的域为每个请求指向我的mongodb服务器上的不同数据库.代码运行,但它似乎并没有实际更改数据源.相反,它总是使用我的datasources.json中定义的那个.

现在,这就是我在做的事情.我的所有模型都引用了"my_db",我希望每个租户在我的mongo服务器上都有一个数据库.

var dataSourceObj = {
        my_db:{
          url: process.env.MONGOLAB_URI,
          connector: "mongodb",
          name: "my_db",
          database: tenant
        }
      }

      Object.keys(dataSourceObj).forEach(function(dataSource) {

        app.dataSources[dataSource].adapter.settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].adapter.clientConfig = dataSourceObj[dataSource];
        app.dataSources[dataSource].settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].connector.settings = dataSourceObj[dataSource];
        app.dataSources[dataSource].connector.clientConfig = dataSourceObj[dataSource];

      });
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法?这是一种多租户的愚蠢方式吗?

谢谢!

McN*_*ulo 1

我做这个项目。我没有一个替代方案。

https://github.com/paulomcnally/loopback-example-multitenant