Ich bin ziemlich neu in discord.js und habe Probleme beim Anzeigen/Sortieren der Daten aus einer SQLite-Datenbank in einer Nachricht. Ich aktualisiere gerade jede Benutzerreihe, nachdem sie eine Nachricht auf dem Server gesendet haben, was gut funktioniert. Ich möchte jedoch eine Art "Leaderboard", das die in der Datenbank enthaltenen Daten verwendet.Discord.js SQLite-Zeilen in Nachricht anzeigen?
Hier ist eine verfeinerte Version von dem, was ich versuche:
var Discord = require('discord.js');
var bot = new Discord.Client();
var moment = require('moment');
var Roll = require('roll'),
const sql = require("sqlite");
sql.open("userData.sqlite");
bot.on('message', message => {
var prefix = config.prefix;
var sender = message.author;
var msg = message.content.toUpperCase();
sql.get(`SELECT * FROM userData WHERE userId ="${message.author.id}"`).then(row => {
if (!row) {
sql.run("INSERT INTO userData (userId, username, level, money, time) VALUES (?, ?, ?, ?, ?)", [message.author.id, sender.username, 0, 0, 0]);
}
}).catch(() => {
console.error;
sql.run("CREATE TABLE IF NOT EXISTS userData (userId TEXT, username TEXT, level INTEGER, money INTEGER, time INTEGER)").then(() => {
sql.run("INSERT INTO userData (userId, username, level, money, time) VALUES (?, ?, ?, ?, ?)", [message.author.id, sender.username, 0, 0, 0]);
});
});
});
Befehle, die die Daten lesen und den Inhalt in einer Nachricht funktionieren, wie senden:
if (msg === prefix + 'MONEY') {
sql.get(`SELECT * FROM userData WHERE userId ="${sender.id}"`).then(row => {
message.channel.send(`You have: $${row.money}`)
})
}
Aber ich Ich bin nicht sehr sachkundig in SQLite und die Dokumentation zum Sortieren/Anzeigen scheint nicht für mich zu arbeiten. Ich habe nur um zu sehen versucht, wie viele Benutzer insgesamt gibt es und wie viel Geld sie haben (für Mini-Games):
if (msg === prefix + 'LEADERBOARD') {
sql.get(`SELECT username,money FROM userData ORDER BY username`).then(rows => {
message.channel.send(rows);
})
}
Dies ist jedoch zurück: UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): DiscordAPIError: Cannot send an empty message.
Jede Hilfe oder Rat würden geschätzt!
ich Missverständnis sein kann, was Sie meinen, aber wenn ich versuche, um die Abfrage zu erwarten, Knoten sagt: 'const data = sql.get await (Benutzername SELECT, Geld von Daten);' ' Syntax : Unerwarteter Bezeichner " – koubi
await sql.get (' SELECT username, money FROM daten WHERE tableName = "$ {message.author.id}" '); Dies ist nicht discord.js Frage. Dies ist in der Regel Javascript und SQL-Frage. Und 'SyntaxErrors' löst meist von Typo aus. –
versuchen Sie dies: const data = erwarten sql.get ('SELECT * FROM userData WHERE userId = "$ {message.author.id}"'); console.log (Daten); –