如何将 Node.js 环境变量注入客户端 JavaScript

How to inject Node.js environment variables into client-side JavaScript?

本文关键字:注入 客户端 JavaScript 环境变量 js Node      更新时间:2023-09-26

>在我们的项目中,我们在 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在《编程风格的元素》中写道,他们想知道在典型的计算机中心,有多少日常活动相当于通过编译器简单地输入参数)。使用解释性语言,代码/数据的区别很容易变得模糊,但值得将它们分开。

附言在我见过的大多数问题中,你的英语都比这更好。