如何在node.js中将数组从服务器端传输到客户端?

问题描述:

我在客户端有以下功能:如何在node.js中将数组从服务器端传输到客户端?

   //TODO: to fix 
       var socket = io.connect('http://localhost:3000/home'); 
       socket.on('news', function (data) { 
        console.log('testing: ' + data); 
        //socket.emit('my other event', {my: 'data'}); 
       }); 

而在服务器端执行以下操作:

module.exports = function(app, io) { 

    app.get('/home',function(req, res){ 
     //res.render('profile.ejs'); 
    }); 
    io.on('connection', function(socket){ 
     socket.emit('news', { 
     data: 'world' 
     }); 
}; 

的问题是,我似乎无法登录了接收到的数据客户端的控制台。我的代码有什么问题?

+1

'console.log('testing:',data);' – dandavis

+0

@dandavis它的工作!这是我的错,请提交您的答案,所以我接受它,并感谢一群 – abedzantout

+0

在连接功能中放置一个日志,并检查它是否连接 –

使用JSON.stringify()在适当的formate`

console.log('testing: ' + JSON.stringify(data)); 

打印整个数据通过调用console.log('testing: ' + data);,JavaScript是试图将对象data转换为字符串,通过调用toString。这将导致字符串“testing:[object Object]”。

您需要手动将对象转换为更有用的字符串,例如通过调用JSON.stringify(data),或者您可以使用该功能是console.log可能会收到多个参数:

console.log('testing:', data);

这样,你的控制台打印acutall对象,而不是一个字符串表示。