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