我正在尝试从数组中检索对象并单独选择它们。返回一个对象时,我的表格单元格会填充该对象,即([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>
答案 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);
}