gpt4 book ai didi

javascript - 使用node.js、mysql和socket.io发送多个对象

转载 作者:行者123 更新时间:2023-11-29 12:16:32 25 4
gpt4 key购买 nike

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

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 block 之后立即发出。您发出的代码在接收 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
});

关于javascript - 使用node.js、mysql和socket.io发送多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com