繁体   English   中英

在Heroku上使用Javascript访问环境变量?

[英]Accessing environment variables in Javascript on Heroku?

我在Heroku上有一个ruby / rack应用程序服务于一个站点。 该站点使用Javascript,我想访问Javascript文件中的Heroku环境变量(API密钥)。 我试过了:

process.env.API_KEY
// As well as:
process.env['API_KEY']

但似乎都不起作用。 我得到一个没有定义错误的进程。 我得到的上述代码行来自在Heroku上运行的Node.js应用程序。 我认为从普通的js文件访问密钥是一样的,但它不起作用。

你很困惑。 Javascript在访问者的Web浏览器中运行, 而不是在Heroku上运行,因此无法读取服务器的环境变量。 这是一个常见问题。 解决方案是让您的Web应用程序通过Ruby模板提供Javascript,插入公共API密钥。

我写的简单app有一个例子。 https://github.com/hickford/nanoblogger Javascript文件nano.js由Ruby erb模板呈现

var pusher = new Pusher( '<%= Pusher.key %>'); 

process.env东西是Node.js的一部分 ,而不是JavaScript的一部分,所以它不会转到你的应用程序。

但是,您的机架应用程序应该可以访问环境变量,因此,如果您可以将该值传递给JavaScript可访问的内容(不将其暴露给用户/ DOM,如果它是敏感信息)那么这应该可行。

这个其他答案可能会指出您有用的方向,或至少澄清您尝试从JavaScript中做什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM