繁体   English   中英

使用node.js,mysql和socket.io发送多个对象

[英]Sending multiple objects with node.js, mysql and socket.io

我正在使用node.js,mysql和socket.io,我想从mysql数据库中获取大量数据。 它将是一组具有xy位置坐标的星星。 我可以按行var所示逐行获取数据,并将其正确记录到node.js控制台。 我还能够通过发射线将标准消息返回给客户端。 但是,我无法将star数据发送到客户端,如果我尝试每次使用一个数组来存储行var,它只会返回一个空白数组。

 function starUpdate(sessionid){ var query = "SELECT * FROM stars"; var conn = mysql.createConnection({ host : 'localhost', user : 'dbuser', password : 'dbpass', database : 'dbname' }); //console.log("Running query: " + query); conn.query(query, function(err, rows, fields) { if (!err) for (var i = 0; i < rows.length; i++) { var row = rows[i]; console.log(row); } else result = 'error'; }); conn.end(); console.log("Star data: " + result); //server.to(sessionid).emit("starupdate",result); } 

当我向控制台执行“行”的单独输出时,得到以下信息:

 { star_id: 1, star_type: 1, star_x: 200, star_y: 200, star_alpha: 1, star_status: 1 } { star_id: 2, star_type: 2, star_x: 200, star_y: 250, star_alpha: 1, star_status: 1 } { star_id: 3, star_type: 3, star_x: 200, star_y: 300, star_alpha: 1, star_status: 1 } 

如何设置结果变量并在其中输入行,以便我的发射行传输所有要在客户端上处理的数据?

在if else块之后发出。 您的发射代码在接收mysql回调之前正在执行。

conn.query(query, function(err, rows, fields) {
    if (!err)
        for (var i = 0; i < rows.length; i++) {
            var row = rows[i];
            console.log(row);
        }
    else
        result = 'error';

   //here 
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM