Соедините базу данных mysql на основе маршрута в express.js с помощью sequelize. - PullRequest
0 голосов
/ 30 мая 2018

Я создаю мультитенантное приложение, в котором каждый клиент имеет отдельную базу данных.

Можно ли изменить соединение с базой данных в дальнейшем, в зависимости от маршрута?

У меня есть два маршрута

  1. scale.com / ss94545

  2. scale.com / mn94545

При входе пользователи перенаправляютсяto 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,
});

1 Ответ

0 голосов
/ 30 мая 2018

Вы пытались сделать имя базы данных параметром маршрута, а затем создать экземпляр 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);
});
...