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

时间:2016-04-25 06:05:08

标签: javascript node.js express socket.io

我在客户端有以下功能:

                //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'
        });
};

问题是我似乎无法将收到的数据记录到客户端的控制台。我的代码出了什么问题?

2 个答案:

答案 0 :(得分:0)

使用JSON.stringify()以正确的格式化打印整个数据

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

答案 1 :(得分:0)

通过调用console.log('testing: ' + data);,Javascript正在尝试通过调用data将对象toString转换为字符串。这将导致字符串"测试:[object Object]"。

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

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

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