繁体   English   中英

优化node.js中显示mysql查询结果的效率

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM