Я получаю строку из mysql в массив с помощью node-mariasql. Когда я печатаю этот массив, используя мой 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», я получаю это как возвращение: Однако, если я распечатать значение «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
});
Спасибо заранее, я надеюсь, что кто-то может мне помочь.
Я бы поставил ваш 'steamid' строка преобразуется в число в какой-то момент и так 76561198053558238 не могут быть представлены точно двойником, вы получите 76561198053558240. Хотя было бы странно, что 'logger.debug (user.steamid);' все равно будет отображать правильный идентификатор, если это так. –
Также покажите нам свое определение для таблицы. –
Я собираюсь выйти на конечность здесь и предположить, что autoSendWinnings имеет орфографическую ошибку, а profilePrivacy на самом деле не определена, но регистратор может понять это и напечатать ее как 0, используя определение объекта. – chugadie