gpt4 book ai didi

javascript - 如何检索 EJS/node.js 中数据对象的属性?

转载 作者:行者123 更新时间:2023-11-29 11:05:33 26 4
gpt4 key购买 nike

我将一个数据对象作为参数传递给渲染方法,并为其分配变量名称“values”。

app.get('/', function(req, res) {
var query = 'SELECT AVG(numUsers) FROM attendance';
connection.query(query, function(err, results) {
if(err) {
console.log(err);
}
console.log(results);

for(var i = 0; i < results.length; i++) {
var values = results[i];
}

res.render('index', { values: results });
});
});

控制台打印以下结果对象值:

[ RowDataPacket { 'AVG(numUsers)': 13.75 } ]

在我的 EJS 模板文件中,我引用此对象来检索其属性值:

<table>
<tr>
<th>Average attendance</th>
<tr>
<% for(var i = 0; i < values.length; i++) { %>
<tr>
<td><%- JSON.stringify(values) %></td>
</tr>
<% } %>
</table>

在我的索引页上,打印以下字符串:

[{"AVG(numUsers)":13.75}]

如何直接从数据对象中检索孤立的整数值 13.75?

最佳答案

根据您的控制台输出结果是一个由对象组成的数组。这意味着要访问数据库中第一个找到的匹配项,您可以像 console.log(results[0]);

那样访问它

由于您不想访问整个结果对象,而只想访问其索引 AVG(numUsers) 的值,因此您可以像 console.log(results[0][ 'AVG(numUsers)']);

所以路由器中的循环需要如下所示:

var values = [];
for(var i = 0; i < results.length; i++) {
values[i] = results[i]['AVG(numUsers)'];
}
res.render('index', { values: values });

如果你想要一个干净的数组,只包含浮点值。

在您的模板文件中只需:

<% for(var i = 0; i < values.length; i++) { %>
<tr>
<td><%- values[i] %></td>
</tr>
<% } %>

关于javascript - 如何检索 EJS/node.js 中数据对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41467169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com