Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改then()节点js中的变量内容_Javascript_Node.js_Asynchronous_Synchronization_Sequelize.js - Fatal编程技术网

Javascript 如何更改then()节点js中的变量内容

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

我想从名为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
});

不可能保持此代码同步。模块应导出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=>{/*依赖于连接的一切都发生在这里*/})