2014-01-22 43 views
8

生产我将AWS凭据存储为heroku配置变量。Sails.js - 访问控制器中的local.js环境设置

开发我想包含config/local.js中的配置详细信息,但是如何访问控制器中的配置详细信息?

local.js包含:

module.exports = { aws_key: "...", aws_secret: "..." }

在我的控制器中我已经试过aws_keyconfig.aws_key,和其他人 - 但没有运气。是否有一个主要的应用程序名称空间,我可以用它来限制local.js导出的属性?

我是新来的风帆,我觉得这应该是直接 - 任何帮助,将不胜感激。

回答

30

找到解决方案。第3步是我遇到麻烦的地方。

TL;博士

什么我不知道是,module.exports.thing使得可通过sails.config.thingthing对象。很高兴知道。与内容


1)我在配置创建一个新文件/ aws.js

// Get heroku config values  
module.exports.aws = { 
    key: process.env.AWS_KEY, 
    secret: process.env.AWS_SECRET 
} 

2)在local.js把实际AWS creds(这不会因为sails会使用gitignore自动忽略local.js)。

aws: { 
    key: actual-key, 
    secret: actual-secret 
} 

这使得本地测试,我们没有获得Heroku的配置设置,同时保护这些价值来自于GitHub库被暴露。

3)现在,在控制器的访问:

var aws_config = sails.config.aws; 

AWS.config.update({ 
    accessKeyId: aws_config.key, 
    secretAccessKey: aws_config.secret 
}); 

+0

谢谢你正是我一直在寻找 –

+0

伟大的工作德鲁。感谢您发布此信息。 – pimbrouwers

+0

在这里,我们如何使用不同的配置,像dev/production等不同的环境。 –