Passer une variable depuis nodejs vers html avec socket io emit
Résolu
wanwanwan
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
wanwanwan Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
wanwanwan Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Depuis plusieurs jours je cherche à passer une donnée depuis le serveur nodejs vers une page html. Jusqu'à présent je passais un message du type ("message") depuis le nodejs vers la page html et ça fonctionnait bien. Maintenant je veux passer une variable mais je n'y arrive pas. Pourtant ça ne doit pas être beaucoup plus compliqué.
Voici ce que j'ai fait, code nodejs (récupération de la variable depuis un code python puis transfert vers html):
Voici le code html :
A mon sens c'est mon script de la page html qui n'est pas bon. Je ne connais pas bien le javascript et c'est pour cela que je galère..
J'ai essayé plusieurs configurations, sans succès. Si vous pouviez m'indiquer quelques pistes pour orienter mes recherches.
En vous remerciant.
Depuis plusieurs jours je cherche à passer une donnée depuis le serveur nodejs vers une page html. Jusqu'à présent je passais un message du type ("message") depuis le nodejs vers la page html et ça fonctionnait bien. Maintenant je veux passer une variable mais je n'y arrive pas. Pourtant ça ne doit pas être beaucoup plus compliqué.
Voici ce que j'ai fait, code nodejs (récupération de la variable depuis un code python puis transfert vers html):
app.post('/timer', function(req, res){
res.sendFile(__dirname + '/public/status.html');
var info = req.body;
io.emit('messageFromServer', info);
console.log(info)
});
Voici le code html :
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
socket.on('messageFromServer',function(data) {
console.log(data.messageFromServer); });
</script>
A mon sens c'est mon script de la page html qui n'est pas bon. Je ne connais pas bien le javascript et c'est pour cela que je galère..
J'ai essayé plusieurs configurations, sans succès. Si vous pouviez m'indiquer quelques pistes pour orienter mes recherches.
En vous remerciant.
A voir également:
- Passer une variable depuis nodejs vers html avec socket io emit
- Editeur html - Télécharger - HTML
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Restore photo io - Télécharger - Retouche d'image
- Passer de majuscule à minuscule - Guide
3 réponses
Bonjour,
Le truc c'est que je veux afficher sur la page html la variable "info", qui existe car lorsque je l'affiche sur la console nodejs ( console.log(info) ) alors cela m'affiche bien les infos demandées. Donc de ce coté c'est ok.
La ou ça bloque c'est que mon script sur ma page html n'est pas bon. Les 2 lignes ne doivent pas aller :
Je ne sais pas comment "dire" au script : "récupère la variable" et "écrit la dans la page html".
=======================
Je viens de tester une autre méthode :
script de la page html :
code nodejs :
cela fonctionne partiellement car j'ai un affichage dans ma page html mais pas le bon..
En gros au lieu d'afficher la valeur transmise, ça affiche : [object Object]
Les infos que je veux afficher sont : {'time' : temps}
temps étant un entier.
Le truc c'est que je veux afficher sur la page html la variable "info", qui existe car lorsque je l'affiche sur la console nodejs ( console.log(info) ) alors cela m'affiche bien les infos demandées. Donc de ce coté c'est ok.
La ou ça bloque c'est que mon script sur ma page html n'est pas bon. Les 2 lignes ne doivent pas aller :
socket.on('messageFromServer', function (data) {
console.log(data.messageFromServer); });
Je ne sais pas comment "dire" au script : "récupère la variable" et "écrit la dans la page html".
=======================
Je viens de tester une autre méthode :
script de la page html :
<ul id="messagesList">
</ul>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
var list = document.getElementById("messagesList");
socket.on('messageFromServer', function (data) {
var item = document.createElement('li');
item.innerHTML = data;
list.appendChild(item);
});
</script>
code nodejs :
app.post('/timer', function(req, res){
res.sendFile(__dirname + '/public/status.html');
var info = req.body;
io.emit('messageFromServer', info);
console.log(info)
});
cela fonctionne partiellement car j'ai un affichage dans ma page html mais pas le bon..
En gros au lieu d'afficher la valeur transmise, ça affiche : [object Object]
Les infos que je veux afficher sont : {'time' : temps}
temps étant un entier.
Pour suite, j'ai testé la modification :
quand j'exécute le tout, j'ai maintenant l'affichage " undefined " dans la zone ou je souhaite afficher les infos.
La question reste alors comment définir ma variable ...
<ul id="messagesList">
</ul>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
var list = document.getElementById("messagesList");
socket.on('messageFromServer', function (data) {
var item = document.createElement('li');
item.innerHTML = data.time;
list.appendChild(item);
});
</script>
quand j'exécute le tout, j'ai maintenant l'affichage " undefined " dans la zone ou je souhaite afficher les infos.
La question reste alors comment définir ma variable ...