【问题标题】:Why does Json stringify help when sending array to front end using express?为什么使用 express 将数组发送到前端时 Json stringify 有帮助?
【发布时间】:2020-01-22 01:33:41
【问题描述】:

我正在使用带有 ejs 模板的 Nodejs。我的 Nodejs 后端中有一个数组,如下所示:

array= [false,false,false,false]

现在,如果我尝试将其发送到我的 ejs 做类似的事情

res.render("home",{myarray:array}

在我的 ejs(前端)中

let myarray = <%- myarray %>

我明白了:

Uncaught SyntaxError: Unexpected token false

经检查显示

let myarray = false,false,false,false

但是,如果我更改,在我的后端

res.render("home",{myarray:array}

res.render("home",{myarray:JSON.stringify(array)}

一切正常。 Myarray 现在又变成了一个数组:

[false,false,false,false]

我只是不明白为什么 JSON.stringify 在我无法发送常规数组时帮助我将数组从后端发送到前端。

【问题讨论】:

标签: javascript node.js


【解决方案1】:

一般来说,当前端从服务器读取任何内容时,所有内容都是文档/字符串格式,需要解密。

由于ejs会传递html格式的变量,所以所有的变量都需要字符串化。

您也可以在 Scriptlet 中对变量进行字符串化,而不是直接传递字符串化的变量。 let myarray = &lt;%- JSON.stringify(myarray) %&gt;

【讨论】:

    【解决方案2】:

    您可以在 ejs 中使用直接数组,但您必须在 ejs 中使用循环。如果您通过 JSON.stringify 发送,您可以通过 JSON.parse();

    还原

    【讨论】:

      猜你喜欢
      • 2021-04-08
      • 2017-01-06
      • 2021-07-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2023-03-30
      相关资源
      最近更新 更多