Javascript 如何更改then()节点js中的变量内容
我想从名为DataBaseNames的表中获取数据库名称Javascript 如何更改then()节点js中的变量内容,javascript,node.js,asynchronous,synchronization,sequelize.js,Javascript,Node.js,Asynchronous,Synchronization,Sequelize.js,我想从名为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
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
});
不可能保持此代码同步。模块应导出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
});
});
请注意,连接在建立之前是不可用的,因此在此承诺中等待
authenticate()
,可能会有所帮助,如中所述。您是否尝试过异步/等待
?我不知道如何以适当的方式使用它们,现在在索引中,我发现此代码有一个错误code var sequelize=connexion.connexion1;filter(file=>{return(file.indexOf('.')!==0)&&(file!==basename)&(file.slice(-3)=='.js');}).forEach(file=>{let model=sequelize['import'](path.join('u dirname,file));db[model.name]=model;})代码>如何在索引模型中使用此承诺答案说明您需要使用承诺,而您没有使用承诺。它应该是:connexion.connexion1.then(sequelize=>{/*依赖于连接的一切都发生在这里*/})
;