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()elementsになり、それぞれを呼び出し.toString()ます。そして

new Object().toString() === "[object Object]"

消費できるようにデータを出力するには、次を使用できますJSON.stringify()

var test = <%- JSON.stringify(data) %>;

これは、JSON の構文が JavaScript の構文に基づいていることを利用して、Arrayリテラルのリテ​​ラルを出力しObjectます

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