如何从NodeJS导入variables到JS?

我如何在JS文件中使用静态variables?

我正在使用ejs模板的nodeJS。 在HTML中,如果我使用<%= colors %>但我想在客户端js中使用颜色的内容。

我认为它应该是这样的:

 var color[] = <%= colors => 

很高兴知道我做错了什么。 谢谢!

马吕斯

编辑:为了清除事情,我写了这个问题很快,所以似乎我忘了解释一些事情。

颜色是由nodeJS express服务器发送的数组。

 var colors = ['blue', 'red', 'green']; 

在index.ejs模板中,我可以通过以下方式调用“blue”:

 <span> <%= colors[0] %> </span> 

。 现在我有一个单独的客户端的functions.js文件。 我想在这个文件中访问“蓝色”。

你的第一个问题是var color[] =是无效的JavaScript。

你好像把它和PHP混在一起了。 您正在寻找的语法可能是:

 var color = []; color.push(someValue); 

我们不能告诉你的服务器端代码要为<%= colors =>输出什么,但我敢打赌,它是像blue东西。

 var color = []; color.push(<?= colors =>); 

因此会给你:

 var color = []; color.push(blue); 

…这很好,只要你有一个名为blue的variables已经。 您可能需要一个string文字,所以您需要将您的文本编码为JavaScript文字。

这或多或less与JSON一样:

 var color = []; color.push(<?= JSON.stringify(colors) =>); 

…可能会做的工作。

如果colors不是blue但实际上是一个数组,那么你可能只想把整个东西转储到variables中:

 var color = <?= JSON.stringify(colors) =>; 

好的,我find了一个解决方法。

我现在在我的index.ejs模板中:

 <script> var colors = [<%= colors %>]; </script> 

我在下一行中调用我的functions.js(客户端)。 现在我可以使用:

 $("span").text(colors[0]); 

。 如果有更好的解决scheme(jQuery代码不是我所使用的),请评论!