如何从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代码不是我所使用的),请评论!