我正在写一个socket.io应用程序,我在不必机会一行在我的前端scripts.js中越来越恼火文件每次我推到Heroku的时间,从的NodeJS:在前端脚本中使用环境变量
var socket = io.connect('http://localhost');
到
var socket = io.connect('http://ersatz-elephant-1337.herokuapp.com/');
我知道我可以使用process.env.VAR
来访问后端的变量,但我不知道是否有任何办法以编程方式确定这在我的前端脚本中使用?我宁愿把脚本留在静态的地方,但也许这不可能?
编辑:我不是真的在后端寻找解决方案...我正在寻找一种方式,我的/public/scripts.js
文件可以连接到正确的东西。我想也许这样做是通过指定server.js
一些特别针对前端脚本文件,而不是静态地服务于它的唯一途径,但如果是这样,那么这就是我要找的,而不是如何实际访问ENV瓦尔指令在服务器上。对不起,有任何困惑!
从您的问题中可以看出,在执行或预执行期间何时确定要推送到哪个目标并不明确。你决定在剧本运行的哪个路径上,或者你知道之前知道吗? – Metalskin
ummm,预执行。就像它是一个静态文件一样,它只是需要在heroku上与本地不同。 – MalcolmOcean
我个人建议在这种情况下使用运行时参数。我不喜欢使用环境变量,它总是变得混乱。如果您使用运行时参数,那么您可以随时使用shell脚本来根据需要使用环境变量。尽管如此,这更多的是个人品味。 – Metalskin