Javascript 将整数数组从服务器发送到客户端
我有一个数组:Javascript 将整数数组从服务器发送到客户端,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我有一个数组: let numbers = [8,4,2,1,7,5,3,0]; 我想使用socket.emit将此数组发送到客户端。 但当我使用以下方式发送此数据时: var numbers1 = JSON.stringify(numbers); socket.emit('new',{num:numbers1}); 并使用以下命令在客户端收听: socket.on('new',(data)=>{ var aa = data.num ; consol
let numbers = [8,4,2,1,7,5,3,0];
我想使用socket.emit将此数组发送到客户端。
但当我使用以下方式发送此数据时:
var numbers1 = JSON.stringify(numbers);
socket.emit('new',{num:numbers1});
并使用以下命令在客户端收听:
socket.on('new',(data)=>{
var aa = data.num ;
console.log(aa);
});
在aa控制台的DevTools上显示未定义
编辑
我写了一个不完整的代码。
完整的客户端代码为:
socket.on('new',(data)=>{
var numbers = JSON.parse(data.num); //this will retrieve your array.
console.log(numbers);
}))
它说的是错误
VM42:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
这意味着试图解析的数据未定义。这可能是因为您使用了JSON.stringify,因此必须对“数据”“对象执行JSON.parse,才能访问发送到客户端的对象的属性“num”
socket.on('new',(data)=>{
var aa = JSON.parse(data);
console.log(aa.num);
});
发射时应执行以下操作:
let numbers = [8,4,2,1,7,5,3,0];
var numbers1 = JSON.stringify(numbers);
socket.emit('new',{num:numbers1});
然后你应该从另一边听,像这样:
socket.on('new',(data)=>{
var numbers = JSON.parse(data); //this will retrieve your array.
console.log(numbers);
});
是的,这是一个错误,但另一个错误是他试图发送一个对象
{num:numbers1}
,所以它正在解析numbers1
,但他没有解析他发送的对象。那么数据
是什么呢?可能会记录这一点……您很可能需要在客户端使用JSON.parse(data)
。