Вот мой код для команды >top10
моего бота Discord:
const Discord = require("discord.js");
module.exports.run = async(bot, message, args, con) => {
const top10query = `SELECT user, points, lstmsg FROM scores WHERE guild = '${message.guild.id}' ORDER BY cast(points as SIGNED) ASC LIMIT 10`
//const top10 = con.query(top10query)
const query = querytxt => {
return new Promise((resolve, reject) => {
con.query(querytxt, (err, results, fields) => {
if (err) reject(err);
resolve([results, fields]);
});
});
};
const [results, fields] = await query(top10query);
const map1 = results.map(results => `User: ${(bot.fetchUser(results.user)).username} Messages: ${results.points} Last message: ${results.lstmsg}`);
message.channel.send(map1)
}
module.exports.help = {
name: "top10",
usage: "``prefix`` top10",
description: "top 10 points",
}
Данные для «пользователя» хранятся как идентификатор пользователя. Я получаю «undefined», когда использую команду> top10.
Любые идеи?
РЕДАКТИРОВАТЬ:
Я пытался заменить
const map1 = results.map(results => `User: ${(bot.fetchUser(results.user)).username} Messages: ${results.points} Last message: ${results.lstmsg}`);
message.channel.send(map1)
С участием
const map1 = results.map(results => `User: ${(bot.users.get(results.user.id)).username} Messages: ${results.points} Last message: ${results.lstmsg}`);
Но я получаю такую ошибку:
(node:21128) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'username' of undefined
bot.fetchUser(results.user)).username
, что это строка, которая выдает ошибку. Выполняли ли вы какие-либо записи над ним, например, выходresults.user
, а затемbot.fetchUser(results.user)
, чтобы убедиться, что вы получаете то, что ожидаете? - person Sterling Archer   schedule 06.03.2019UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of undefined
когда я вхожуconsole.log(bot.fetchUser(results.user))
- person QueenInTheNorth   schedule 06.03.2019bot.fetchUser(results.user)
асинхронный - person PLASMA chicken   schedule 06.03.2019