在没有sailsjs的情况下全局设置水线模型连接

时间:2017-04-04 12:30:50

标签: node.js sails.js waterline

我在项目中设置的水线不是帆项目。我的版本是0.11.x.如果我在每个模型中设置连接,它将完美地工作。 (第一个代码块中注释掉的行)

当我按照文档设置每个模型中的连接时,我的模型正常工作:

@import

但是,我想根据我设置的NODE_ENV var将数据库从test更改为local到prod。对于所有型号,全球都有这样的地方吗?我加载所有模型:

Waterline = require('waterline');

module.exports = Waterline.Collection.extend({
  tableName: 'external_resource',
  meta: {
    schemaName: 'intellinotedb'
  },
  // connection: 'myLocalPostgres',
  attributes: {
    id: {
      type: 'integer',
      required: true
    },

我的关系如下:

models = []
fs.readdirSync(HOMEDIR + '/lib/models/waterline').forEach (file) =>
  models.push(require(HOMEDIR + '/lib/models/waterline/' + file))

class WaterlineORM

  init:(next)=>
    models.forEach (model) ->
      orm.loadCollection(model)

    orm.initialize config, (err, models) =>
      throw err if(err)
      global.models = models.collections
      global.connections = models.connections
      next()

1 个答案:

答案 0 :(得分:1)

使用变量。

E.g。环境变量

connection: process.env.CONNECTION_NAME,

E.g。配置变量

var config = require('../config');
...
  connection: config.connectionName,