2013-05-12 69 views
8

我想一个数组传递给.ejs页面,但是当我尝试使用和的NodeJS EJS传递数组到

var test ="<%= data %>"; 
console.log(test); 

我得到的输出

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object 

上CONSOLE.LOG nodejs文件可以正常工作,但是当我尝试console.log客户端时它会混乱起来。

回答

30

问题可能与<%= 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"},...]; 
+8

如果我不使用'<% - JSON.stringify()%>'而不是'<%= JSON.stringify()%>',我无法正确工作。 – robertklep 2013-05-12 17:44:45

+0

@robertklep谢谢。忘了那个。 – 2013-05-12 17:56:27