我想从名为DataBaseNames的表中获取数据库名称
this.connexion2.query('select dbName from DataBaseNames;')
.then((names) => { console.log(names) })
然后我要连接到我找到的第一个数据库名称
module.exports.connexion1 = new Sequelize(names[0], 'root', 'mdp', {
host: '01.01.01.01',
dialect: 'mssql',
operatorsAliases: false,
port: 1433,
pool: {
max: 9,
min: 0,
acquire: 30000,
idle: 10000
},
dialectOptions: {
requestTimeout: 30000 // timeout = 30 seconds
},
logging: false
});
答案 0 :(得分:0)
不可能保持此代码同步。一个模块应该导出一个Sequelize连接的承诺,而不是一个连接本身:
exports.connexion1 = connexion2.query('select dbName from DataBaseNames;')
.then((names) => {
return new Sequelize(names[0], 'root', 'mdp', {
host: '01.01.01.01',
dialect: 'mssql',
operatorsAliases: false,
port: 1433,
pool: {
max: 9,
min: 0,
acquire: 30000,
idle: 10000
},
dialectOptions: {
requestTimeout: 30000 // timeout = 30 seconds
},
logging: false
});
});
请注意,直到建立连接,连接才可用。因此,如this answer中所述,等待此承诺中的authenticate()
可能会有所帮助。