我想在我的LoopBack应用程序中实现多租户功能。目前,我正在尝试使用中间件根据请求的域来重新定义我的数据源以指向我的mongodb服务器上的不同数据库。代码可以运行,但似乎没有真正改变数据源。相反,它始终使用datasources.json中定义的数据源。
目前,我的做法是,所有模型都引用“my_db”,而我希望为每个租户在我的Mongo服务器上有一个数据库。
目前,我的做法是,所有模型都引用“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];
});
有人有什么想法吗?这种方法是否是进行多租户的愚蠢方式?
谢谢!
tenant
是什么? - Jordan Kasper