我正在使用nodejs编写rest api,表达并序列化orm。我正在创建的api是基于SAAS平台的android应用程序。因此,我需要为我的应用程序的每个用户创建单独的数据库。将存在一个主数据库,该数据库将用于在登录时识别每个用户的数据库凭据。默认情况下,在每个api调用中,在需要连接/创建用户特定数据库的每条路由中,该主数据库都将连接。桌子。
/ *这是我的db.js文件,用于使用sequelize进行主数据库连接。 * /
func p [] @ acc = func p acc
/ *这是Demo.js模型* /
require('dotenv').config();
const sequelize = require('sequelize');
module.exports = new sequelize('master_db', process.env.DB_USER, process.env.DB_PASS, {
host: process.env.DB_HOST,
dialect: 'mysql',
operatorAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});
/ *路径文件夹中的demo_route.js文件* /
const Sequelize = require('sequelize');
const db = require('../../db');
const Demo_table = db.define('demo_table', {
// attributes
demo_id: {
type: Sequelize.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true,
},
demo_name: {
type: Sequelize.INTEGER,
allowNull: false,
}
}, {
// options
timestamps: false,
freezeTableName: true,
});
module.exports = Demo_table;
/ *这是控制器文件demo_member.js * /
"use strict";
require('dotenv').config();
const express = require('express');
const router = express.Router();
const checkAuth = require('../middleware/auth');
//load controllers
const DemoController = require('../controllers/demo_member');
router.post('/demo_activity', checkAuth, DemoController.demo_activity);
module.exports = router;
我期望解决方案能够尽早满足我的要求。我可以在其中动态创建数据库,然后创建表并与其连接以执行CRUD。