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

时间:2012-08-16 23:06:54

标签: javascript node.js

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

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

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

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

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

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

P.S。抱歉我的英文。

1 个答案:

答案 0 :(得分:0)

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

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

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

P.S。在我见过的大多数问题中,你的英语要好于此。