【问题标题】:Transfer data from nodejs to html using socket.io使用 socket.io 将数据从 nodejs 传输到 html
【发布时间】:2021-07-03 01:14:02
【问题描述】:

我正在尝试使用 socket.io 将数据从 nodejs 传输到 html。 首先,我尝试将文本从 nodejs 传输到 html,它可以工作:

nodejs 代码:

app.post('/timer', function(req, res){                  
    res.sendFile(__dirname + '/public/status.html');
    io.emit('messageFromServer', "text");
});

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>

文本出现在 ul id="messagesList" AND /ul 之间。

现在我想将变量从 nodejs 传输到 html。该变量是从 python 发出的,它可以工作。但是我无法将这个变量写入html页面,我不知道为什么。

Nodejs 代码:info 是来自 python 的变量。

app.post('/timer', function(req, res){                  
    res.sendFile(__dirname + '/public/status.html');
    var info = req.body;
    io.emit('messageFromServer', info);
    console.log(info)
});

当我启动 python 代码时,console.log(info) 写入:{ time: '10' }

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>

当我启动 python 代码时,html 写:[objet,Object],但我想要:“time 10”。 如何调整我的代码? 谢谢。

=================================

现在它适用于这些代码: 节点:

app.post('/timer', function(req, res){                  
    res.sendFile(__dirname + '/public/status.html');
    var info = req.body;
    io.emit('messageFromServer', info);
    console.log(info)
});

和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.time;
                list.appendChild(item);
                });
            </script>

谢谢你帮助我。

【问题讨论】:

  • item.innerHTML = data 更改为 item.innerHTML = "time " + data.time。您正在将一个对象分配给需要分配字符串的 DOM。
  • 这能回答你的问题吗? Converting an object to a string

标签: javascript html node.js socket.io


【解决方案1】:

这也许能解决你的问题。

item.innerHTML = data.time

【讨论】:

  • 您好,感谢您的回答。我用data.time测试过,我的html页面写“未定义”...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
相关资源
最近更新 更多