2017-12-18 155 views
0

我正在做一个POS(销售点),作为Saas,前端有React,后端(API Rest)和MongoDB中的NodeJs作为数据库。动态切换数据库

我已经完成了一个基本程序,现在我想要任何用户注册都会有他自己的数据库。

在互联网上阅读了一些文章和问题后,我的结论是在每次前端消耗后端(API)时在数据库之间切换。

一般逻辑:

  1. 用户登录
  2. 在后台,我使用的是一般的数据库来检查用户凭据,也是我获取该用户的数据库的名称。
  3. 每次前端消耗的下一个代码在中间件知道数据库应该使用API​​执行的API:
var dbUser = db.useDb('nameDataBaseUser'); 
var Product = dbUser.model('Product', ProductSquema); 

我的模式和变量“DB”定义的固定在代码:

var db = mongoose.createConnection('mongodb://localhost');

问题:

我不知道是否正确的解决方案是关于我正在尝试做什么,但似乎我效率不高,每次调用API时都会不断生成模型,因为在某些API中(即在某些中间件中,不同型号)

问:

这是最好的办法吗?或任何建议来面对这个问题?

回答

0

不确定为每个新用户创建新数据库的想法。这似乎造成了很多复杂性,并且难以维护,并且使得以后难以访问分析数据等。为什么不为每个新用户使用一个新集合?这样,您只能使用一组数据库访问凭据。此外,Creating a new collection happens会在您为其存储数据时自动执行。