将字符串从Node.JS应用程序中的服务器端环境变量注入客户端上执行的Javascript文件?

将字符串从Node.JS应用程序中的服务器端环境变量注入客户端上执行的Javascript文件?,javascript,node.js,Javascript,Node.js,我有一个Node.JS v8.11.1应用程序在Ubuntu 14.04 LTS盒上运行。该应用程序提供AngularJS Javascript文件和使用它们的HTML文件。我希望在将Javascript文件发送到客户端(即用户的浏览器)之前,将字符串值注入源于服务器上环境变量的其中一个Javascript文件中 我知道我可以使用“process.env.{environment.variable name}”访问服务器端的环境变量。我需要知道的是如何获取该值,将其注入到我的Javascript

我有一个Node.JS v8.11.1应用程序在Ubuntu 14.04 LTS盒上运行。该应用程序提供AngularJS Javascript文件和使用它们的HTML文件。我希望在将Javascript文件发送到客户端(即用户的浏览器)之前,将字符串值注入源于服务器上环境变量的其中一个Javascript文件中

我知道我可以使用“process.env.{environment.variable name}”访问服务器端的环境变量。我需要知道的是如何获取该值,将其注入到我的Javascript文件中,以便当Javascript文件在客户端执行时,其代码中包含所需的字符串。例如:

服务器端的环境变量:

var someVar = "REPLACE ME AT RUNTIME";
var someVar = "12345";
某些环境变量=12345

服务器端源文件中的Javascript语句:

var someVar = "REPLACE ME AT RUNTIME";
var someVar = "12345";
源文件到达客户端时,源文件中的Javascript语句:

var someVar = "REPLACE ME AT RUNTIME";
var someVar = "12345";
我该怎么做?我应该使用像Jade/Pug这样的模板引擎吗?那是不是太过分了

   app.get("some-script.js", (req, res) => {
     fs.readFile("some-script.js", (err, file) => {
        res.send(file.replace("12345", process.env.sth));
    });
  });
发送时请更换。或者,您可以在启动时:

   fs.writeFileSync("some-script.js", fs.readFileSync("some-script.js").replace("12345", process.env.arg));
发送时请更换。或者,您可以在启动时:

   fs.writeFileSync("some-script.js", fs.readFileSync("some-script.js").replace("12345", process.env.arg));

你可以通过像咕噜声或咕噜声这样的任务跑者来解决你的问题。或者你也可以在服务前使用Webpack打包你的文件。此节点模块将对您有所帮助


你可以通过像咕噜声或咕噜声这样的任务跑者来解决你的问题。或者你也可以在服务前使用Webpack打包你的文件。此节点模块将对您有所帮助


你说这是一个angularjs应用程序。因此,只需将上面的代码放在
index.html
文件中的脚本标记中即可。您可以使用NodeJS
fs
api在
index.html
中搜索并替换该简单字符串,然后再提供该字符串。如果您使用的是Express,这可以在中间件中完成。您说它是angularjs应用程序。因此,只需将上面的代码放在
index.html
文件中的脚本标记中即可。您可以使用NodeJS
fs
api在
index.html
中搜索并替换该简单字符串,然后再提供该字符串。如果您使用的是Express,这可以在中间件中完成。