Javascript 为什么Json字符串化在使用express将数组发送到前端时有帮助?

Javascript 为什么Json字符串化在使用express将数组发送到前端时有帮助?,javascript,node.js,Javascript,Node.js,我正在使用Nodejs和ejs模板。我的Nodejs后端中有一个数组,如下所示: array= [false,false,false,false] 现在,如果我试着把这个发送给我的EJ res.render("home",{myarray:array} 在我的ejs中(前端) 但是,在我的后端,如果我更改 res.render("home",{myarray:array} 到 一切正常。Myarray现在再次成为一个数组: [false,false,false,false] 我只是不明白

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

array= [false,false,false,false]
现在,如果我试着把这个发送给我的EJ

res.render("home",{myarray:array}
在我的ejs中(前端)

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

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

一切正常。Myarray现在再次成为一个数组:

[false,false,false,false]

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

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

因为EJB将以html格式传递变量,所以所有变量都需要字符串化


您也可以在Scriptlet中字符串化变量,而不是直接传递字符串化变量
let myarray=

您可以在EJB中使用直接数组,但必须在EJB中使用循环。如果通过JSON.stringify发送,则可以通过JSON.parse()进行还原

重复问题
res.render("home",{myarray:array}
res.render("home",{myarray:JSON.stringify(array)}
[false,false,false,false]