2016-09-21 3 views
0

Я пытаюсь извлечь объекты из массива и выбрать их по отдельности. Когда объект возвращается, мои ячейки таблицы заполняются этим объектом i.e ([object Object]), а не свойствами этого объекта, заполняющего таблицу. Я знаю, что мне, вероятно, нужно разрушить возвращенный массив для извлечения отдельных объектов. Однако я не могу найти способ разрушить массив и отправить объекты на мою страницу html. Это мой код:Уничтожить массив нескольких объектов

app.get('/lastName/:Name', function(req, res) { 
     var newArr = foo.lookupByLastName(req.params.Name);      
     res.type('text/html'); 
     res.render('last', {LName: newArr}); 
} 

console.log (newArr) возвращает полный массив:

[{id:1, firstName: 'John', lastName: 'Doe'}, 
{id:1, firstName: 'James', lastName: 'Smith'}, 
{id:1, firstName: 'Jane', lastName: 'Doe'}, 
{....         ...] 

Я пытаюсь получить что-то взамен, как это:

{id:1, firstName: 'John', lastName: 'Doe'} 
{id:2, firstName: 'James', lastName: 'Smith'} 
{id:3, firstName: 'Jane', lastName: 'Doe'} 

Внутри моего HTML page Я пытаюсь перебрать возвращаемые объекты и поместить каждый объект в одну строку и соответствующие свойства в другие ячейки таблицы.

<table border=1> 
    <tr> 
    {{#each LName}} 
     <td> 
     {{this}} 
     </td> 
    {{/each}} 
    </tr> 
</table> 
+0

Это не разрушая. Какой механизм шаблонов вы используете? Проще всего просто написать this.field1 this.field2 и т. Д. –

+0

Мне удалось отделить объекты в newArr, используя newArr [i]. Это работает, но если у меня есть несколько объектов, мне нужно будет знать индекс newArr. –

ответ

0

Я нашел временное решение. Однако с этим решением мне теперь нужно создать цикл, который даст мне результат для res.render(). Я создаю цикл, думая, что могу поместить строку в res.render, но получил ошибку. Это то, что я сделал:

app.get('/lastName/:Name', function(req, res) { 
    var newArr = foo.lookupByLastName(req.params.Name);      
    res.type('text/html'); 
    res.render('last', {Per1: newArr[0], Per2: newArr[1], Per3:newArr[3] }); 
    } 

Это взгляд, который я использовал бы, если он работал:

text ="{"; 
for (;newArr[i];) 
    {text+="Per"+i+":"+ "newArr["+i+"],"; 
    i++;} 
text+='}'; 

С помощью этой петли res.render будет выглядеть так:

app.get('/lastName/:Name', function(req, res) { 
    var newArr = foo.lookupByLastName(req.params.Name);      
    res.type('text/html'); 
    res.render('last', text); 
    } 
Смежные вопросы