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)