gpt4 book ai didi

javascript - 如何通过 ejs 向 Javascript 传递数组值?

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:47 27 4
gpt4 key购买 nike

我正在使用 JavaScript 通过 ejs 传递一个数组。我可以获取 ejs 中的值,但不能从 JavaScript 中获取。以下是更多信息。

Node .js

FileTypes = {"application/octet-stream":20,
"audio/mpeg":12,
"text/html" :71}
res.render('index.ejs', {FileTypes: JSON.stringify(FileTypes)});

索引.ejs

 <script type="text/javascript">

var FileTypes = <%=FileTypes%>;
//Error message on the console - Uncaught SyntaxError: Unexpected token &

</script>

有什么想法吗?

最佳答案

使用 <%= %> EJS 中的标记将转义输出,因此 {"application/octet-stream": ... }正在变成 {&quot;application/octet-stream&quot;: ... } ,导致 JavaScript 如下所示:

<script type="text/javascript">                                                                                                                                          
var FileTypes = {&quot;application/octet-stream&quot;:20,&quot;audio/mpeg&quot;:12,&quot;text/html&quot;:71};
</script>

因此,您可以看到“Unexpected token &”的来源。解决方案是使用 <%- %>标签,不会转义输出:

<script type="text/javascript">
var FileTypes = <%- FileTypes %>;
// here -----^
</script>

...并且会给你你想要的:

<script type="text/javascript">                                                                                                                                          
var FileTypes = {"application/octet-stream":20,"audio/mpeg":12,"text/html":71};
</script>

关于javascript - 如何通过 ejs 向 Javascript 传递数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21858309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com