【发布时间】: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