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

1 ответов


проблема, вероятно, с <%= data %>, а не console.log(). Если вы проверите результат на стороне клиента, вы, вероятно, увидите:

var test ="[object Object],[object Object],[object Object],...";

когда вы просто печати an Array, это будет просто .join() элементов, называя .toString() на каждого. и:

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

для вывода данных, чтобы их можно было использовать, вы можете использовать JSON.stringify():

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

это использует преимущества синтаксиса JSON на основе synax JavaScript для вывода Array литерал Object литералы:

var test = [{"prop":"value"},...];