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