2016-08-19 49 views
0

我有一個返回整個表的查詢。 的唯一方法,我發現作爲一個HTML表是通過爲每列的陣列來顯示數據:在node.js顯示MySQL查詢結果優化效率

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> 
+0

可能你展示你的HTML模板? –

+0

謝謝!你能否描述你的查詢('arr')返回的數據究竟是怎樣的? –

+0

'[RowDataPacket { NULLINFOId:7, nullinfoDate:星期三2016年8月17日十三時48分18秒GMT + 0300(IDT), nullinfoNumber:877, nullinfoBool:0, nullinfoText1: '單詞', nullinfoText2:'短語」}, RowDataPacket { NULLINFOId:8, nullinfoDate:星期三2016年8月17日13時48分53秒GMT + 0300(IDT), nullinfoNumber:924, nullinfoBool:1, nullinfoText1: '某物', nullinfoText2 :'stuff'},'等... – user3187759

回答

1

看來它足以通過您的查詢直接返回的數據:

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> 
+0

它工作!謝謝。只能用var或const代替let,但不管 – user3187759

+0

@ user3187759酷:) –