2

在我们的项目中,我们在 Node.js 上托管了客户端 JavaScript。

该脚本使用来自服务器的另一个静态内容(类似于http://host:port/static/content)。我们不能使用本地路径,因为这个 JavaScript 可以注入不同的站点。

我们的开发、测试和生产环境有不同的主机和端口设置。所以我们必须为不同的环境手动硬编码这些属性。

解决此问题的最简单方法是在服务器端手动将 JavaScript 解析为字符串,同时为静态文件准备响应。

我认为这不是一个好主意。

对于这种情况,Node.js 中是否有任何内置机制?

PS对不起我的英语。

4

1 回答 1

0

我在这里假设客户端代码是从一些动态生成的 HTML 调用的。

如果“配置”数据的数量相当少,您可以通过data-*生成的 HTML 中的属性传递它,例如<body data-static="http://host:port/static/content">,如果它更大,则可以通过内联<script id="config" type="application/json">元素传递。

这里的关键是避免动态生成仅用于表示数据的代码(40 年前,Kernighan 和 Plauger 在《编程风格的要素》中写道,他们想知道典型计算机中心的日常活动有多少只是通过编译器输入参数)。使用解释性语言,代码/数据的区别很容易变得模糊,但值得在您的脑海中将它们分开。

PS 你的英语比我见过的大多数问题都要好。

于 2012-08-17T02:22:26.757 回答