[英]optimise efficiency in display mysql query results in node.js
我有一个查询,返回整个表。 我发现将数据显示为HTML表格的唯一方法是为每一列创建一个数组:
var date = [];
for (var i in arr) {
date[i] = arr[i].nullinfoDate;
}
var number = [];
for (var i in arr) {
number[i] = arr[i].nullinfoNumber;
}
var bool = [];
for (var i in arr) {
bool[i] = arr[i].nullinfoBool;
}
var text1 = [];
for (var i in arr) {
text1[i] = arr[i].nullinfoText1;
}
var text2 = [];
for (var i in arr) {
text2[i] = arr[i].nullinfoText2;
}
然后将所有列发送到HTML模板:
app.get('/', function (req, res) {
res.render('index', {
title: 'home',
date: date,
number: number,
bool: bool,
text1: text1,
text2: text2
});
});
但这感觉效率极低。 有更好的方法吗?
HTML(EJS)模板:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><%= title %></title>
</head>
<body>
<h1><%= title %></h1>
<table>
<% for(var i = 0; i < date.length; i++) {%>
<tr>
<td><%= date[i] %></td>
<td><%= number[i] %></td>
<td><%= bool[i] %></td>
<td><%= text1[i] %></td>
<td><%= text2[i] %></td>
</tr>
<% } %>
</table>
</body>
</html>
看起来直接传递查询返回的数据就足够了:
app.get('/', function (req, res) {
res.render('index', {
title: 'home',
data: arr
});
});
然后,您可以在模板中执行以下操作:
<table>
<% for (let datum of data) {%>
<tr>
<td><%= datum.nullinfoDate %></td>
<td><%= datum.nullinfoNumber %></td>
<td><%= datum.nullinfoBool %></td>
<td><%= datum.nullinfoText1 %></td>
<td><%= datum.nullinfoText2 %></td>
</tr>
<% } %>
</table>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.