无法访问数组的所有值

时间:2016-03-17 12:16:24

标签: javascript mysql arrays node.js mariadb

我使用node-mariasql从mysql获取一行到一个数组。 当我使用Winston记录器打印出这个数组时,我得到了这个:

steamid=76561198053558238, tradePartnerId=93292510, tradeToken=T3dZTnlq, autoSendWinnings=1, profilePrivacy=0, earnings=0.00, lastKnownName=jdK jdK, avatar=https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/49/4955f3be7e9b9d16e8fc0b16ed2407ba9b4c563c.jpg, avatarLarge=https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/49/4955f3be7e9b9d16e8fc0b16ed2407ba9b4c563c_full.jpg

如果我打印出“steamid”的值,我会将其作为回报:     76561198053558238 但是,如果我打印出“autoSendWinnnings”或“profilePrivacy”的值,我会将“undefined”作为返回值。 这是为什么?我究竟做错了什么?我不认为这是一个MySQL相关的问题,因为如果我打印出整个数组,我显然会得到所有的值。

不过,我会在这里附上相关代码。

statements['get_user'] = sql.prepare('SELECT * FROM `users` WHERE steamid=:steamid');
function getUser(steamid, callback) {
    sql.query(statements.get_user({ steamid: steamid }), { useArray: true }, function(err, rows) {
        if(err)
            logger.error('A MySQL error occured: ' + err);

        callback(rows);
    });
}

getUser('76561198053558238' function(user) {
    logger.debug(user); // I get the whole array here
    logger.debug(user.steamid); // I get the value for steamid here
    logger.debug(user.autoSendWinnings); // I get undefined here
});

提前致谢, 我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

您的回调会收到Array个结果行。由于未知原因,Array有一个属性steamid

尝试

getUser('76561198053558238', function(users) {
    logger.debug(users);
    logger.debug(users[0].steamid);
    logger.debug(users[0].autoSendWinnings);
});