如何在sailsjs中动态地使用多个数据库连接和一个模型?

时间:2016-06-24 08:33:18

标签: node.js sails.js sails-mongo

我是sailsjs的初学者,我有多个数据库,但表结构相同。所以我想为所有这些数据库使用单一模型和控制器。

我知道我们可以像这样设置模型中的连接属性

module.exports = {
    connection: 'mysqlServer1',
    attributes: {
    userid: {
        type: 'integer',
        primaryKey: true
    },
    fbid: {
        type: 'string'
    },
    source: {
        type: 'string'
    }
   }    
 }
};

但是我们怎样才能动态设置连接运行时?

由于

2 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但我偶然发现它寻找解决不同问题的方法,我想我会回答。

最简单的方法是设置环境变量并使用默认值。

例如,如果您将MODELA_CONN="mysqlServer1"放在.bash_profile中,或者使用export MODELA_CONN="mysqlServer1" && sails lift这样的导出来提升风帆,那么您可以使用它:

module.exports = {
  connection: process.env.MODELA_CONN || "defaultMysql",
  ...
}

答案 1 :(得分:0)

我担心这还不可能。最接近动态连接的是使用以下npm包https://github.com/sgress454/sails-hook-autoreload。 这将使用更改的连接配置自动重新加载sailjs,而无需再次提升风帆。但它不会在运行时覆盖您的问题。