Javascript node.js/socket.io-从服务器发送到客户端后未定义数据

Javascript node.js/socket.io-从服务器发送到客户端后未定义数据,javascript,jquery,node.js,sockets,socket.io,Javascript,Jquery,Node.js,Sockets,Socket.io,这让我的头撞到了桌子上。这是给我问题的代码 服务器: 客户: 现在我的问题是,当在服务器端打印console.logrows输出时,在节点控制台中,按照DB查询结果的预期填充“rows”数组。但是,当console.logrows的输出在客户端打印时,“rows”变量未定义 这应该是一段非常简单的代码,但它已经占据了我的优势。我有其他套接字发射,其功能几乎与上面的代码相同,但是这个特定的发射没有它 有什么想法吗?这就是您正在使用的代码吗?我已经有几个月没有在Socket.io中编写任何新代码了,

这让我的头撞到了桌子上。这是给我问题的代码

服务器:

客户:

现在我的问题是,当在服务器端打印console.logrows输出时,在节点控制台中,按照DB查询结果的预期填充“rows”数组。但是,当console.logrows的输出在客户端打印时,“rows”变量未定义

这应该是一段非常简单的代码,但它已经占据了我的优势。我有其他套接字发射,其功能几乎与上面的代码相同,但是这个特定的发射没有它


有什么想法吗?

这就是您正在使用的代码吗?我已经有几个月没有在Socket.io中编写任何新代码了,但正如您所说的,我认为这是正确的。是的,这是完全正确的代码,减去我替换的SQL查询。快把我逼疯了,这是什么东西?io应该能够处理任何事情,但可能有一个小错误。尝试发射rows.toString或类似的东西。看看你得到了什么。好吧,我搞乱了rows.toString,它可以通过fine发送数据,这样客户端就可以读取数据,然后我把它改回rows,它现在神奇地工作了?这绝对不是神奇的。有些事情改变了。显然,你已经修复了你的bug,但我会尽力找出原因。根据我的经验,如果它发生一次,它还会再次发生。不过很高兴你让它工作了。
client.on('get-online-clients', function () {

    connection.query('SELECT CLIENTS FROM DB', function(err, rows, fields) {
        if (err) throw err;
        client.emit('update-clients', rows);
        console.log(rows);
    });

});
socket.on('update-clients', function(rows) {
    console.log(rows);
});