web-dev-qa-db-fra.com

Affichage d'un jeu de données JSON sous forme de table avec Node.js et Express

Tout d’abord, je voudrais signaler que je suis très nouveau dans Node.JS. J'essaie d'utiliser NodeJS pour créer une page contenant plusieurs tables et informations. Mon problème est que je ne peux pas obtenir le résultat de la requête SQL dans une table HTML. Actuellement, je .send les données dans une page HTML en utilisant express. 

Code que j'utilise:

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

Ceci affiche toutes les données de mon instruction SQL sur ma page HTML:

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

ce que j'aimerais avoir comme résultat est:

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

Est-ce même possible de le faire dans le nœud JS? 

5
Rahul Sharma

Je vous recommande de regarder Jade . C'est un moteur de template pour le nœud js qui peut être utilisé pour créer des pages HTML. Il est facile à utiliser et très flexible.

Un bon tutoriel est trouvé ici . Il vous montre comment créer un site Web simple avec Node, Express et Jade et constitue, à mon avis, un bon point de départ.

Pour résoudre votre problème avec Jade, il y a plusieurs réponses dans stackoverflow comme ici .

2
Urknecht

Semblable à Jade, vous pouvez utiliser 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>

Cela irait à travers un tableau d’objets (que j’ai enregistré en tant que data et remplirais une table en conséquence).

3
Simon Legg