我现在正在学习 JS,尝试用 NodeJS 编写一个简单的游戏服务器。我想从数据库中获取两个值(一个 Varchar、一个 Int),并将它们作为单个字符串获取。
function top5FromDatabase(callback){
var curSTR='';
var out1='ba';
var queryString = 'SELECT * FROM highscore ORDER BY score DESC LIMIT 5';
connection.query(queryString, function(err, rows, fields) {
if (err) throw err;
for (var i=0, j=1;i<rows.length;i++, j++) {
curSTR+=j.toString();
curSTR+=' ';
curSTR+=rows[i].name;
curSTR+=' ';
curSTR+=rows[i].score;
curSTR+=' ';
curSTR=curSTR.toString();
}
console.log('Here is:' + curSTR);
out1=curSTR;
});
callback(out1+ ' e o l');
}
我多次尝试找出问题所在:控制台日志总是输出我想要得到的行,所以我尝试检查所有内容(这就是为什么 curSTR 有这么多单独的行)。 回调变得“未定义”为 out1。
我推断 rows[i].name 和 rows[i].score 有问题 - 试图获取那些 rows[i].xxx.toString(),但它也不起作用。
最佳答案
将您的 callback(out1+ ' e o l');
放入 .query
回调中。
在您的代码中,callback
在 connection.query
执行之前调用。
关于javascript - Node.js 与 MySQL - 返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227657/