【问题标题】:How do I get to transfer an array from the server side to client side in node.js?如何在 node.js 中将数组从服务器端传输到客户端?
【发布时间】:2016-04-25 16:22:49
【问题描述】:

我在客户端有以下功能:

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

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

【问题讨论】:

  • console.log('testing: ' , data);
  • @dandavis 成功了!这是我的错,请提交您的答案,以便我接受并非常感谢
  • 在connection函数里面放一个log,检查是否连接成功

标签: javascript node.js express socket.io


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    通过调用console.log('testing: ' + data);,Javascript 试图通过调用toString 将对象data 转换为字符串。这将产生字符串“testing: [object Object]”。

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

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

    这样,您的控制台将打印 acutall 对象而不是字符串表示形式。

    【讨论】:

      猜你喜欢
      • 2016-11-28
      • 2016-06-17
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      相关资源
      最近更新 更多