Получить TenantId из параметра маршрута и создать базу данных на лету в Mongoose - PullRequest
0 голосов
/ 28 октября 2019

В приложении Multi-Tenancy я пытаюсь создать базу данных на лету, используя TenantId из каждого запроса, и ищу лучший способ.

  1. Как передать TenantId из параметра Route Paramк любой функции промежуточного программного обеспечения (здесь, в db.ts), которая создает соединение mongoose на лету?
  2. Это правильный способ создания подключения для приложения с несколькими арендаторами?

db.ts

const host = 'mongodb+srv://@HOST/?retryWrites=true&w=majority'
    var options = {
        user: '',
        pass: '', 
        useUnifiedTopology: true,
        useNewUrlParser: true
      }


    mongoose.connect(host, options)

    const myDB = mongoose.connection.useDb('Company1'); //get TenantId from route param

    let companySchema = new Schema({
        companyName: { type: 'string', unique: true, required: true  }
    }) 

module.exports = {
    Company: myDB.model('Company', companySchema)
   }

Здесь, как получить Company1 из параметра маршрута :tenantId

app.js

const db = require('helpers/db.ts')
const port = process.env.PORT || 8080

app.listen(port, () => {
    console.log(`App Listening to ${port}`);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...