从其他配置文件访问配置变量

2024-06-03

我在配置文件中使用另一个配置文件中设置的配置变量时遇到问题。例如。

// file - config/local.js
module.exports = {
  mongo_db : {
    username : 'TheUsername',
    password : 'ThePassword',
    database : 'TheDatabase'
  }
}

// file - config/connections.js
module.exports.connections = {
  mongo_db: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017,
    user: sails.config.mongo_db.username,
    password: sails.config.mongo_db.password,
    database: sails.config.mongo_db.database
  },
}

当我“帆升起”时,出现以下错误:

user: sails.config.mongo_db.username,
      ^
ReferenceError: sails is not defined

我可以访问其他地方的配置变量 - 例如,这有效:

// file - config/bootstrap.js
module.exports.bootstrap = function(cb) {
  console.log('Dumping config: ', sails.config);
  cb();
}

这会将所有配置设置转储到控制台 - 我什至可以在其中看到 mongo_db 的配置设置!

我很困惑。


您无法访问sails在配置文件内部,因为在处理这些文件时 Sails 配置仍在加载!在bootstrap.js,您可以访问配置在引导函数内部,因为该函数在 Sails 加载后被调用,但不是above功能。

任何状况之下,配置/本地.js被合并到所有其他配置文件之上,因此您可以通过以下方式获得您想要的内容:

// file - config/local.js
module.exports = {
  connections: {
    mongo_db : {
      username : 'TheUsername',
      password : 'ThePassword',
      database : 'TheDatabase'
    }
  }
}

// file - config/connections.js
module.exports.connections = {
  mongo_db: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017
  },
}

If you really需要从另一个配置文件访问您可以随时使用require,但不建议这样做。由于 Sails 根据多种因素(包括当前环境)将配置文件合并在一起,因此您可能会看到一些无效的选项。最好以预期的方式做事:使用配置/环境/*用于特定于环境的设置的文件(例如配置/env/生产.js), 配置/本地.js用于特定于单个系统(例如您的计算机)的设置,其余文件用于共享设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从其他配置文件访问配置变量 的相关文章

随机推荐