私はdiscord.jsについてかなり新しく、メッセージのsqliteデータベースからのデータの表示/ソートに問題があります。私は現在、サーバー上でメッセージを送信する際に各ユーザーの行を更新していますが、これは正常に動作しています。しかし、データベースに含まれているデータを使用して、「リーダーボード」が好きです。ここで Discord.jsメッセージにsqlite行を表示しますか?
はの洗練されたバージョンである私がしようとしています: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]);
});
});
});
などのデータを読み込み、メッセージの細かい作業に内容を送信するコマンド、:
if (msg === prefix + 'MONEY') {
sql.get(`SELECT * FROM userData WHERE userId ="${sender.id}"`).then(row => {
message.channel.send(`You have: $${row.money}`)
})
}
しかし、I sqliteにはあまり知識がありません。ソートや表示に関するドキュメントは私にとってはうまくいかないようです。私はそこで、どのくらいのお金、彼らは(ミニゲームのために)持っているどのように多くの総ユーザーを参照しようとしています:
if (msg === prefix + 'LEADERBOARD') {
sql.get(`SELECT username,money FROM userData ORDER BY username`).then(rows => {
message.channel.send(rows);
})
}
しかし、これは返しますUnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): DiscordAPIError: Cannot send an empty message.
任意のヘルプやアドバイスをいただければ幸いです!
私はあなたが何を意味するか誤解することができるが、私は、クエリを待つしようとすると、ノードは言う: 'constのデータ=は、(データからユーザー名、お金をSELECT)sql.get待つ;' 'にSyntaxError :予期せぬ識別子 ' – koubi
await sql.get(' SELECT username、money FROM data WHERE tableName = "$ {message.author.id}"); これはdiscord.jsの質問ではありません。これは一般的にjavascriptとSQLの質問です。また、SyntaxErrorsはtypoからトリガされます。 –
これを試してください: const data = await sql.get( 'SELECT * FROM userData where userId = "$ {message.author.id}"'); console.log(data); –