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?
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 .
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).