javascript - Node.js 与 MySQL - 返回字符串

标签 javascript mysql node.js

我现在正在学习 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 回调中。

在您的代码中,callbackconnection.query 执行之前调用。

关于javascript - Node.js 与 MySQL - 返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227657/

相关文章:

javascript - new URL() - WHATWG URL API

javascript - 如何创建 HTML5 WebRTC 对等连接与数据通道多个对等点?

Javascript:在字符串中查找日期 (dd/mm/yyyy) 的最佳方法

应用 toUpperCase() 时,JavaScript 变量变为 null

mysql - SQL 中的高级过滤器

node.js - 无法从 travis 发布到 github 包注册表 : 401 unauthorized despite including github personal access token

javascript - Node js 上的 $http 请求 - 如何成功返回值 $http.post

mysql - 在 MySQL 中将 'describe' 转换为 'create table'?

php - 嵌套事务在 Laravel 中是如何工作的?

javascript - 为什么我的模态视图会导致 "is not a constructor error"?