wake-up-neo.net

Anzeigen einer JSON-Datenmenge als Tabelle mit Node.js und Express

Zunächst möchte ich darauf hinweisen, dass ich bei Node.JS sehr neu bin. Ich versuche, NodeJS zu verwenden, um eine Seite zu erstellen, die mehrere Tabellen und Informationen enthält. Mein Problem ist, dass ich das Ergebnis der SQL-Abfrage nicht in eine HTML-Tabelle bekommen kann. Derzeit .send die Daten in eine HTML-Seite mit express. 

Code, den ich verwende:

    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!');
    })

Dadurch werden alle Daten aus meiner SQL-Anweisung auf meiner HTML-Seite gedruckt:

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

was ich als Ergebnis haben möchte, ist:

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

Ist dies überhaupt möglich in Knoten JS zu tun? 

5
Rahul Sharma

Ich würde empfehlen, dass Sie sich Jade anschauen. Es ist eine Template-Engine für den Knoten js, mit der HTML-Seiten erstellt werden können. Es ist einfach zu bedienen und sehr flexibel.

Ein gutes Tutorial findet sich hier . Es zeigt Ihnen, wie Sie eine einfache Website mit Node, Express und Jade erstellen und ist meiner Meinung nach ein guter Ausgangspunkt.

Um Ihr Problem mit Jade zu lösen, gibt es mehrere Antworten in stackoverflow wie hier .

2
Urknecht

Ähnlich wie bei Jade könnten Sie Embedded JS verwenden.

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

Dies würde ein Array von Objekten durchlaufen (die ich als datagespeichert habe) und eine darauf basierende Tabelle auffüllen.

3
Simon Legg