我正在尝试将数组传递给.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客户端时,它会搞砸。
答案 0 :(得分:32)
问题可能出在<%= data %>
,而不是console.log()
。如果您检查客户端的结果,您可能会看到:
var test ="[object Object],[object Object],[object Object],...";
当您只是打印 Array
时,这只是.join()
the elements,每个都会调用.toString()
。 And:
new Object().toString() === "[object Object]"
要输出数据以便消费,您可以使用JSON.stringify()
:
var test = <%- JSON.stringify(data) %>;
这利用了JSON的语法基于JavaScript的synax来输出Array
literal of Object
literals:
var test = [{"prop":"value"},...];