11

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

4

1 回答 1

36

问题很可能是<%= 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 语法的 JSON 语法来输出Array文字的Object文字

var test = [{"prop":"value"},...];
于 2013-05-12T17:03:08.173 回答