Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Node.js环境变量注入客户端JavaScript?_Javascript_Node.js - Fatal编程技术网

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

如何将Node.js环境变量注入客户端JavaScript?,javascript,node.js,Javascript,Node.js,在我们的项目中,我们在Node.js上托管了客户端JavaScript 此脚本使用来自服务器的另一个静态内容(类似于http://host:port/static/content)。我们不能使用本地路径,因为这个JavaScript可以被注入到不同的站点 我们的开发、测试和生产环境具有不同的主机和端口设置。 因此,我们必须针对不同的环境手动硬编码这些属性 解决此问题的最简单方法是在服务器端手动将JavaScript解析为字符串,同时为静态文件准备响应 我认为这不是一个好主意 Node.js中是否

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

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

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

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

我认为这不是一个好主意

Node.js中是否有针对这种情况的内置机制


顺便说一句,我的英语很抱歉。

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

如果“配置”数据量相当小,您可以通过生成的HTML中的
数据-*
属性传递它,例如
,或者,如果它更大,则通过内联
元素传递

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


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

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

如果“配置”数据量相当小,您可以通过生成的HTML中的
数据-*
属性传递它,例如
,或者,如果它更大,则通过内联
元素传递

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


另外,你的英语比我见过的大多数问题都好。

为什么不直接使用PHP,以便客户端页面加载正确的设置?我们在Node.js上有一些后端功能,a我们不想在一个项目中使用两个不同的服务器。为什么不直接使用PHP以便客户端页面加载正确的设置?我们在Node.js上有一些后端功能,a我们不想在一个项目中使用两个不同的服务器。感谢您的回答,但是这个脚本可以被注入到不同的第三方站点中,我们无法管理/更改它们的html代码。在大多数情况下,客户端只有一行代码:您是否能够将
data-*
属性粘贴到单个脚本行上,并将客户端代码默认为生产服务器的设置(如果该属性不存在)?我明白您的意思,我想我们可以对您的变体进行一些修改。谢谢。谢谢你的回答,但是这个脚本可以被注入不同的第三方网站,我们不能管理/更改它们的html代码。在大多数情况下,客户端只有一行代码:您是否能够将
data-*
属性粘贴到单个脚本行上,并将客户端代码默认为生产服务器的设置(如果该属性不存在)?我明白您的意思,我想我们可以对您的变体进行一些修改。非常感谢。