mysql 动态加载数据库数据库连接,如何根据每个客户端动态连接mysql数据库?
我在这里使用mean stack m=mysql构建一个saas产品
我使用sequelize作为orm for mysql,我的连接:
const sequelize = new Sequelize('smallscale_superapp', 'root', 'root1', {
host: '127.0.0.1',
port: 3306,
dialect: 'mysql',
logging: false,
});
例如,我有一个管理超级应用程序,所以我创建了一个业务,例如业务代码
“001ABCD”,此业务代码存储在我的主管理数据库中,然后我告诉我的所有客户端转到一个名为“example.com”的特定URL。
因此,如果他们输入url,主页将看起来像slack.com有一个输入框,在名为example.com的硬编码值之后
所以现在我的客户在输入框中输入了我创建的业务代码并存储在我的主数据库中。
将业务代码放入输入框后,将打开一个名为“001abcd.example.com”的新子域(我正在检查主数据库中的业务代码是否匹配,如果匹配,则创建动态子域)。
因此,如果一切顺利,在创建子域客户端页面后,将显示为登录屏幕,在那里他们需要注册,注册详细信息需要在那里动态数据库
注释
:创建业务时,我将在主数据库表中获取客户端数据库、用户名、主机和密码。
如何使用sequencemysql来实现这一点?
如何在客户端登录的基础上获得动态连接的续集连接?
正如我之前所说,我在数据库中有客户机dbname等,我正试图创建这样的连接:
exports.dynamicDatabase = (req, res) => {
const { code } = req.params;
Business.find({
where: { code },
raw: true,
})
.then((data) => {
const sequelizeClient = new Sequelize(data.dbname, data.dbusername, data.dbpassword, {
host: data.dbhost,
port: 3306,
dialect: 'mysql',
logging: false,
});
})
.catch((err) => { res.status(400).send(err.message); });
};
现在,在这个函数之外,我正尝试同步表,如下所示:
sequelizeClient.authenticate().then((err) => {
if (err) {
console.log('There is connection in ERROR.');
} else {
console.log('Dynamic MYSQL Connection has been established successfully');
}
});
sequelizeClient.sync().then(() => {
console.log('Dynamic Missing Table Created');
}, (err) => {
console.log('An error occurred while creating the table:', err.message);
});
变量
后遗症
在函数内部,所以我无法访问?全球地。
所以我把变量设为全局变量,但有一个问题
我在函数中有sequellizeclient变量,这个函数只在url中输入我的域后执行,
但是sequenceclient.sync()不在函数内部,所以当我启动node server.js时,它会抛出错误:
sequelizeClient.authenticate().then((err) => {
[0] ^
[0]
[0] TypeError: Cannot read property 'authenticate' of undefined
mysql 动态加载数据库数据库连接,如何根据每个客户端动态连接mysql数据库?相关推荐
- [JAVA冷知识]动态加载不适合数组类?那如何动态加载一个数组类?
写在前面 今天和小伙伴分享一些java小知识点,主要围绕下面几点: 既然数组是一个类, 那么编译后类名是什么?类路径呢? 为什么说动态加载不适合数组? 那应该如何动态加载一个数组? 部分内容参考 &l ...
- render注册一个链接组件_详解vue 动态加载并注册组件且通过 render动态创建该组件...
基于 iview Tabs 组件实现 功能:为每个 tab 动态创建不同的.特定的组件内容,而不需要大量的 import 组件并进行 component 注册 Index.vue import loa ...
- render vue 添加类_详解vue 动态加载并注册组件且通过 render动态创建该组件
基于 iview Tabs 组件实现 功能:为每个 tab 动态创建不同的.特定的组件内容,而不需要大量的 import 组件并进行 component 注册 Index.vue import loa ...
- android 动态加载sdk,LiteAVSDK集成,因此可以动态加载库
在Android开发中,Android Studio用于集成第三方SDK(例如,腾讯视频云移动直播,播放器,短视频以及实时音频和视频). 通常有两种集成方法: aar集成和jar + so集成. An ...
- Linux动态加载共享库,Linux共享库的动态加载(附测试案例)
共享库的动态加载是指可以在程序运行的过程中去加载所需的共享库.常用于某些系统或者应用程序的自动升级. 在C语言的源程序动态加载共享库,需要调用一组特殊的函数,它们被声明于一个专门的头文件dlfcn.h ...
- cascader 动态加载 回显_Elementui cascader 级联选择器 动态加载数据,保存后回显的问题...
问题描述 使用elementui,进行地区选择,分省市区三级动态加载,首次保存后,再次回看数据,怎么选中上次保存的地区 省市区三级都是动态加载,下次回来,只有省一级数据,model里面存的是一个数组, ...
- android listview动态加载网络图片不显示,Android Listview异步动态加载网络图片
Android Listview异步动态加载网络图片 详见: http://blog.sina.com.cn/s/blog_62186b460100zsvb.html 标签: Android SDK ...
- 动态加载html 添加样式表,使页面动态加载不同CSS样式表,从而实现不同风格模板的方法...
我们在制作网页时,有时会制作多种风格模板,而想把这些模板都用起来,而又不知道方法,通过以下两种方法,你就可以实现相同网站不同CSS模板的方法. ASP.Net中利用CSS实现多界面两种方法. 方法一: ...
- 动态加载器的知识学习及CTFHUB动态加载器解题
目录 动态加载器的了解 CTFHUB-动态加载器 动态加载器的了解 在[维基百科]中动态加载是一种机制,通过该机制,计算机程序可以在运行时将库(或其他二进制)加载到存储器中,检索包含在库中的函数和变量 ...
最新文章
- 大数据分析常用去重算法分析『HyperLogLog 篇』
- linux之find
- 全栈工程师?并没有什么卵用。每个人都应该去创业,不为别的,就为了健全你的人格(转)...
- php循环语句w,php ftpconnectphp for 循环语句使用方法详细说明
- 抽象类调用自己的抽象方法,实现来自子类
- sgi stl 之list
- Linux shell script 的语法汇总
- Jsoup从一个文件加载一个文档
- php mysql 内存表_用mysql内存表来代替php session的类_PHP教程
- codeIgniter3 学习笔记四(文件上传)
- 【机器学习】分类决策树基本介绍+代码实现
- mysql amoeba_MySQL基于Amoeba实现读写分离
- python 保存网页图片到本地
- 基于三维实景建模与CIM的数字孪生城市建设
- C语言赋值表达式是从左到右还是从右到左执行?
- 工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
- 苹果iPhone 8或被阻击!
- 恭喜本人的《Three.js基础入门》上线达人课!
- 如何使用Sklearn生成自己的数据集
- c语言课程设计——影院管理系统