NodeJs和Ejs将Arrays传递给页面

时间:2013-05-12 16:45:35

标签: node.js express ejs locomotivejs

我正在尝试将数组传递给.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客户端时,它会搞砸。

1 个答案:

答案 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"},...];