使用 socket.io 将数据从 nodejs 传输到 html

Transfer data from nodejs to html using socket.io

我正在尝试使用 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 代码:信息是来自 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.time