2016-08-19 7 views
0

私はテーブル全体を返すクエリを持っています。私はHTMLテーブルとしてデータを表示することが分かっ 唯一の方法は、各列の配列を作成することである。その後、表示の効率を最適化するmysqlクエリの結果はnode.js

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日夜1時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'}、 'etc ... – 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

それは働いた!ありがとう。 letの代わりにvarまたはconstを使用するだけですが、問題ありません。 – user3187759

+0

@ user3187759 Cool :) –