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