NodeJs和Ejs将数组传递给页面
我想传递一个数组到.ejs页面,但是当我尝试使用
var test ="<%= data %>"; console.log(test);
我得到输出
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object
在nodejs文件Console.log工作正常,但是当我尝试console.log客户端它搞砸了。
这个问题很可能与<%= data %>
,而不是console.log()
。 如果你检查客户端的结果,你可能会看到:
var test ="[object Object],[object Object],[object Object],...";
当你简单地打印一个Array
,这只是.join()
元素 ,每个元素都调用.toString()
。 和 :
new Object().toString() === "[object Object]"
要输出数据以便可以使用,可以使用JSON.stringify()
:
var test = <%- JSON.stringify(data) %>;
这利用了基于JavaScript的synax的JSON语法来输出一个Object
文字的Array
字面 :
var test = [{"prop":"value"},...];