В приложении Multi-Tenancy я пытаюсь создать базу данных на лету, используя TenantId из каждого запроса, и ищу лучший способ.
- Как передать TenantId из параметра Route Paramк любой функции промежуточного программного обеспечения (здесь, в db.ts), которая создает соединение mongoose на лету?
- Это правильный способ создания подключения для приложения с несколькими арендаторами?
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}`);
})