web-dev-qa-db-ja.com

JSONデータセットをNode.jsとExpressでテーブルとして表示する

まず、私はNode.JSに非常に慣れていないことを指摘しておきます。 NodeJSを使用して、複数のテーブルと情報を含むページを作成しようとしています。私の問題は、SQLクエリの結果をHTMLテーブルに取得できないことです。現在私は.sendエクスプレスを使用してデータをHTMLページに変換します。

私が使用するコード:

    var http = require('http');
    http.createServer(function(req, res) {});
      var mysql = require("mysql"); 
      var express = require('express');
      var app = express();
      console.log('Creating the http server');
      con.query('SELECT id ,name FROM customer', function(err, rows, fields)
    {
        console.log('Connection result error '+err);
        console.log('num of records is '+rows.length);

        app.get('/', function (req, res) {
          res.send(rows);
        });

    });

    app.listen(3002, function () {
      console.log('Example app listening on port 3000!');
    })

これにより、私のsqlステートメントのすべてのデータがHTMLページに出力されます。

{"id":"1","name":"Robert"}
{"id":"2","name":"John"}
{"id":"3","name":"Jack"}
{"id":"4","name":"Will"}

結果として私が欲しいのは:

id              Name
1               Robert
2               John
3               Jack
4               Will
..etc 

これはNode JSで行うこともできますか?

5
Rahul Sharma

Jade をご覧になることをお勧めします。これは、htmlページの作成に使用できるノードjsのテンプレートエンジンです。それは使いやすく、非常に柔軟です。

良いチュートリアルがあります here 。 Node、Express、Jadeを使用して単純なWebサイトを作成する方法を示し、私の意見では良い出発点です。

Jadeの問題を解決するために、stackoverflowには here のようないくつかの回答があります。

2
Urknecht

Jadeと同様に Embedded JS を使用できます

<table>
  <tr>
    <th>id</th><th>Name</th>
  </tr>

  <% for (var i = 0; i < data.length; i++) { %>
    <tr>
      <td><%= data[i].id %></td>
      <td><%= data[i].name %></td>
    </tr>    
  <% } %>
</table>

これは、オブジェクトの配列(dataとして保存したもの)を反復処理し、それに基づいてテーブルを作成します。

4
Simon Legg