簡體   English   中英

如何將變量從NodeJS導入JS?

[英]How do I import variables from NodeJS to JS?

如何在JS文件中使用靜態變量?

我正在使用帶有ejs模板的nodeJS。 在HTML中,如果我使用<%= colors %>但我想在客戶端js中使用color的內容,則可以使用。

我認為它應該看起來像:

var color[] = <%= colors =>

知道我在做什么錯會很高興。 謝謝!

馬呂斯

編輯:為了解決問題,我已經快速寫了這個問題,所以似乎我忘記了解釋一些事情。

colors是由nodeJS express服務器發送的數組。

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

在index.ejs模板中,我可以通過以下方式調用“藍色”:

<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的變量即可。 您可能在那里需要一個字符串文字,因此您需要將文本編碼為JavaScript文字。

這與JSON大致相同,因此:

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

……可能會勝任。

如果colors不是blue而是實際上是一個數組,那么您可能只想一次性將整個內容轉儲到變量中:

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

好的,我找到了解決方法。

我現在在我的index.ejs模板中有這個:

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

然后在下一行中調用我的functions.js(客戶端)。 現在我可以使用:

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

如果有更好的解決方案(jQuery代碼與我使用的代碼不完全相同),請發表評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM