我在配置文件中使用另一个配置文件中的config var设置时遇到问题.例如
// 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
},
}
Run Code Online (Sandbox Code Playgroud)
当我'航行升降机'时,我收到以下错误:
user: sails.config.mongo_db.username,
^
ReferenceError: sails is not defined
Run Code Online (Sandbox Code Playgroud)
我可以在其他地方访问配置变量 - 例如,这有效:
// file - config/bootstrap.js
module.exports.bootstrap = function(cb) {
console.log('Dumping config: ', sails.config);
cb();
}
Run Code Online (Sandbox Code Playgroud)
这会将所有配置设置转储到控制台 - 我甚至可以在那里看到mongo_db的配置设置!
我很困惑.
sgr*_*454 17
您无法访问sails配置文件内部,因为在处理这些文件时仍会加载Sails配置!在bootstrap.js中,您可以访问引导函数内的配置,因为该函数在加载Sails后调用,但不在函数上方.
在任何情况下,config/local.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
},
}
Run Code Online (Sandbox Code Playgroud)
如果您真的需要从另一个配置文件访问,您可以随时使用require,但不建议这样做.由于Sails根据几个因素(包括当前环境)将配置文件合并在一起,因此您可能会阅读一些无效选项.最好按预期方式执行操作:将config/env/*文件用于特定于环境的设置(例如config/env/production.js),将config/local.js用于特定于单个系统的设置(如计算机)和其余文件用于共享设置.
| 归档时间: |
|
| 查看次数: |
4562 次 |
| 最近记录: |