我正在构建多租户应用程序,其中每个客户端都有单独的数据库。
是否可以根据路由更改sequelize中的数据库连接?
我有两条路线
scale.com/ss94545
scale.com/mn94545
登录后,用户将被重定向到scale.com/ss94545,以获取其特定网站的所有数据。
另一个mn94545站点使用单独的数据库,因此如果他们想要获取所有数据,则必须转到scale.com/mn94545。
每个安装都有自己的数据库,并且所有数据库都具有相同的架构。
是否可以根据访问的路由更改数据库连接?
这是我的基本静态续集数据连接:
const sequelize = new Sequelize('ss94545', 'root', 'root', {
host: '127.0.0.1',
port: 3306,
dialect: 'mysql',
logging: false,
});
答案 0 :(得分:1)
您是否尝试过将数据库名称设为路由参数,然后再实例化sequelize?假设您可能正在使用快递,它会像这样......
app.get('/:dbname', function(req, res) {
const sequelize = new Sequelize(req.params.dbname, 'root', 'root', {
host: '127.0.0.1',
port: 3306,
dialect: 'mysql',
logging: false,
});
//insert sequelize code here
res.send('test ' + req.params.dbname);
});