【问题标题】:How to create multiple database sequelize sessions in NodeJS如何在 NodeJS 中创建多个数据库 sequelize 会话
【发布时间】:2020-03-13 10:25:33
【问题描述】:

我正在使用无服务器框架创建后端 API,其中我使用 Nodejs 和 Sequelize。我的方言是postgresql。我需要同时与两个数据库交互并保持会话。

我正在做的是这个 我的文件夹结构是

  • 回购
    • 数据库 1
      • model1.js
    • 数据库2
      • model2.js
  const db = {};
  const DBs = DB_NAME.split(',');
  console.log(DB_NAME);
  console.log(DBs);
  for(let i = 0; i < DBs.length; ++i) {
    let database = DBs[i];
    //Store the database connection in our db object
    db[database] = new Sequelize(database, DB_USERNAME, DB_PASSWORD, {
      host: DB_HOSTNAME,
      port: DB_PORT,
      dialect: DB_DIALECT,
      pool: {
        max: 10,
        min: 1,
        idle: 20000,
        acquire: 20000,
      },
      define: {
        underscored: true,
        timestamps: true,
        paranoid: true,
      },
    });
}

这运行良好。但是当我尝试添加模型时

fs
    .readdirSync(__dirname + '/product')
    .filter(file =>
        (file.indexOf('.') !== 0) &&
        (file !== basename) &&
        (file.slice(-3) === '.js'))
    .forEach(file => {
        const model = db.product.import(path.join(__dirname + '/product', file));
        db.[model.name] = model;
    });


// Add models from database2 folder

fs
    .readdirSync(__dirname + '/painted')
    .filter(file =>
        (file.indexOf('.') !== 0) &&
        (file !== basename) &&
        (file.slice(-3) === '.js'))
    .forEach(file => {
        const model = db.painted.import(path.join(__dirname + '/painted', file));
        db.[model.name] = model;
    });

上面给出的错误是导入不是未定义的函数

谁能帮帮我

【问题讨论】:

    标签: node.js postgresql aws-lambda sequelize.js serverless-framework


    【解决方案1】:

    将模型添加到 db 对象时出错。

    代替

    db.[model.name] = model;
    

    我需要做的

    db.painted.[model.name] = model;
    

    db.product.[model.name] = model;
    

    相应地。

    一切正常。我可以在每个 API 调用中维护两个会话

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2012-07-25
      • 1970-01-01
      • 2015-06-25
      • 2019-06-05
      • 2014-09-17
      相关资源
      最近更新 更多