如何将 Node.js 环境变量注入客户端 JavaScript
How to inject Node.js environment variables into client-side JavaScript?
>在我们的项目中,我们在 Node.js 上托管了客户端 JavaScript。
此脚本使用来自服务器的另一个静态内容(类似于 http://host:port/static/content
)。我们不能使用本地路径,因为这个 JavaScript 可以注入到不同的站点。
我们的开发、测试和生产环境具有不同的主机和端口设置。因此,我们必须针对不同的环境手动对这些属性进行硬编码。
解决此问题的最简单方法是在为静态文件准备响应时,在服务器端手动将 JavaScript 解析为字符串。
我认为这不是一个好主意。
在这种情况下,Node.js 中是否有任何内置机制?
附言对不起我的英语。
我在这里假设客户端代码是从一些动态生成的 HTML 调用的。
如果"配置"数据量相当小,您可以通过生成的HTML中的data-*
属性传递它,例如 <body data-static="http://host:port/static/content">
或者,如果它更大,则在内联<script id="config" type="application/json">
元素中。
这里的关键是避免动态生成唯一目的是表示数据的代码(40年前,Kernighan和Plauger在《编程风格的元素》中写道,他们想知道在典型的计算机中心,有多少日常活动相当于通过编译器简单地输入参数)。使用解释性语言,代码/数据的区别很容易变得模糊,但值得将它们分开。
附言在我见过的大多数问题中,你的英语都比这更好。
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 如何将我的javascript库公开给其他客户端使用
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 返回/从Twit's客户端.get
- 将客户端特定的日期格式返回到服务器MVC4
- MobileFirst:在客户端运行计时器作业-最佳选项
- Meteor:在启动时将html注入客户端文件
- 如何防止在客户端/服务器两侧对文本框进行sql注入
- 如何将 Node.js 环境变量注入客户端 JavaScript
- Ember-cli-Mirage 重定向 socket.io 客户端,该客户端注入 Mirage 中
- 访问 aspx 页的客户端 javascript 块中由 RegisterClientScriptBlock 注入的 J
- CasperJS注入的客户端javascript没有完全加载
- 我可以保护我的网站从客户端广告注入
- 防止Javascript中潜在的客户端代码注入