node.js - 将变量从 Rails 应用程序传递到节点包
问题描述
我有一个使用节点包的 Rails 应用程序。我希望能够在运行 rails 服务器时通过设置环境变量来动态设置节点包的配置中的值。所以理想情况下它看起来像这样。
MY_ENV_NUMBER=1 rails s
然后在我的节点应用程序的配置文件中,我可以做类似的事情
myEnvNumber: process.env.MY_ENV_NUMBER
节点包是 rails 应用程序中的依赖项。我不确定是否有更好的方法来做到这一点,但任何在启动时将参数从 rails 应用程序传递到节点包的方法都会很棒。
感谢您的任何帮助!
解决方案
通常,当您使用 Rails 时,node 仅用于构建资产。构建过程结束后,节点不再运行。
您在 app/javascript/packs/*.js 中编写的所有 JavaScript 都在浏览器中运行,而不是在节点中运行。process
对象 和process.env
不存在于浏览器中。
也许您想要达到的目标可以通过其他方式完成?例如,您可以以某种方式将变量的值写入 dom,然后让 JavaScript 从那里读取它?
例如在 application.html.erb 中:
<input type="hidden" id="MY_ENV_NUMBER" value="<%= ENV['MY_ENV_NUMBER'] %>">
现在这个隐藏字段在您的应用程序的每个页面中都可用
推荐阅读
- css - 如何在 React 项目中同时使用 Antdesign 和 tailwindcss
- javascript - 更改数据大小时更新矩形宽度
- python - Python:使用不同的文件在后台播放音乐播放列表
- angular - 有什么功能可以关闭我的 PrimeNG 的 datePicker 吗?
- php - 一个一个地替换字符串中元素的出现添加索引
- python - pandas 系列逐行比较(保留较大系列的基数/索引)
- dbus - dbus上下文中的“众所周知”是什么意思
- scala - 扩展案例对象
- flutter - 在颤动中录制像 Tiktok/Smule 这样的二重唱视频
- mysql - CriteriaQuery order by FIND_IN_SET