Bonjour,

Je commence avec NODEJS et j'ai j'ai encore un peu de mal pour implémenter certaines fonctions.

Sur une page index.html générée par NodeJS, j'aimerais y implémenter 2 parties:
- un retour d'un logiciel
- un état de la base de données.

Pour le retour du logiciel ca c'est bon le code est fait et cela marche bien avec le tableau JSON injecté dans index.html.

Par contre j'arrive a implémenter la recherche dans la base de données.

Pour cette partie, j'ai 2 problèmes:
- la 1ere comment a partir de la page index récupérer le contenu d'un champ (rempli par l'utilisateur) l'utiliser en variable dans la requête de la BDD
- implémenter la recherche dans la BDD et ressortir le tableau pour affichage dans la page index.html et ce en temps réel (donc détecte une nouvelle ligne dans la BDD et l'affiche)

Voici l'index.html
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
        <head></head>
 
        <body>
        <table >
        <tr>Numéro enregistré : </tr>
		<tr>
		<FORM>
		 <input type="text" name="sethu" id="hu" value="145500" ;/>
		</FORM>
		</table>
		<table>
		<br>
        <th> <pre id="ami_data"></pre></th>
         <th> <pre id="ami_data2"></pre></th>
        </tr>
		</table>
 
          <script src="/socket.io/socket.io.js"></script>
          <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
 
 
          <script>
 
            var socket = io();
 
            socket.on('ami_data', function (data)
                                {  
                                var hu = document.getElementById("hu").value;
                                var event_temp=JSON.stringify(data.event);
                                });
          </script>
 </body>
        </html>

le code coté serveur JS:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 
var io = require('socket.io').listen(app);
var iob = require('socket.io');
    var AsteriskAmi = require('asterisk-ami');
    var express= require('express');
    var http=require('http');
    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    var ami = new AsteriskAmi( { port : '5038', host: '127.0.0.1', username: 'test', password: 'test' } );
 
 
var pg = require("pg")
 
 
socket.on('connection', function(client){
    console.log('Le client s\'est connecté au serveur');
    socketnavigateur = client; //socketnavigateur est une variable global pour l'envoi des données temps réel.
	 var connectionString = "pg://postgres:password@localhost:5432/test";
	var conn = new pg.Client(connectionString);
	conn.connect();
    var selectQuery = "SELECT * FROM items";
        conn.query(selectQuery, function select(error, rows, fields){
            if(error){
                console.log(error);
                conn.end();
                return;
            }
 
            //if(rows.length > 0){
             //   var Result = rows[0];
             //   client.send('id: '  + Result['Id_depassement']);
             //   client.send('Date : ' +  Result['Date_Dep']);
             //   client.send('Heure : '+ Result['Heure_Dep']);
             //   client.send('Puissance: ' + Result['P_reactive']);
            //} else{
            //    console.log(error);
            //}
        });
 
 
    //Listener de message
    client.on('message', function(event){
        console.log('Réception du message du client =',event);
    });
 
    client.on('disconnect',function(){
        console.log('Le client s\'est déconnecté !');
    });
});
 
 
 
 
    app.get('/', function(req, res){
 
    //send the index.html file for all requests
    res.sendFile(__dirname + '/index.html');
 
    });
 
    http.listen(3001, function(){
 
    console.log('listening on *:3001');
 
  });
 
    ami.on('ami_data', function(data){
    console.log('AMI DATA', data);
    io.sockets.emit('ami_data', data);
     });
 
 
 
    ami.connect(function(response){
    console.log('connected to the AMI');
 
 
    setInterval( function() {
 
    ami.send({action: ''});           
 
    }, 10000);
  });
 
    process.on('SIGINT', function () {
    ami.disconnect();
    process.exit(0);
 
  });

J'ai tenté de faire 2 sockets pour séparer les flux mais cela ne marche pas du tout... et comment envoyer dans la requête le numéro présent dans la page html (name=sethu). Sachant que l'utilisateur peut le modifier...

merci de m’éclairer