构造多个对象数组

时间:2016-09-21 04:33:29

标签: arrays node.js

我正在尝试从数组中检索对象并单独选择它们。返回一个对象时,我的表格单元格会填充该对象,即([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页面中,我试图迭代返回的对象,并将每个对象放在一行中,并将相应的属性放在表的其他单元格中。

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

1 个答案:

答案 0 :(得分: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);
  }