为我的 discord.js 机器人创建排名列表
Create a ranklist for my discord.js Bot
我有一个名为 "scores" 的 table,我想过滤 UserId 并按他们的分数排序。我想为我的 Discord Bot 创建一个排名列表命令,但我不知道该怎么做。
我虽然是这样,但它不起作用:
const sql = require("sqlite");
sql.open("score.sqlite");
exports.run = (client, message, args) => {
var index = 1;
var msg = "-- Top 5 list --\n";
sql.get("SELECT * FROM scores ORDER BY points DESC LIMIT 5").then(rows => {
for (index = 1; index < 6; index++) {
if (rows[index] !== null) {
msg += index + ". " + rows[index].userId + " - " + rows[index].points + "\n";
}
}
console.log(msg);
});
};
你们能帮帮我吗?
谢谢。
https://github.com/mapbox/node-sqlite3/wiki/API#databasegetsql-param--callback
The signature of the callback is function(err, row) {}. If the result
set is empty, the second parameter is undefined, otherwise it is an
object containing the values for the first row.
sql.get 只有 returns 单行对象(不是 rows 数组 行 个对象)。您需要使用 sql.each 或 sql.all。
sql.all
https://github.com/mapbox/node-sqlite3/wiki/API#databaseallsql-param--callback
sql.each
https://github.com/mapbox/node-sqlite3/wiki/API#databaseeachsql-param--callback-complete
编辑:看起来您正在尝试制作一个不和谐点系统机器人。这里有关于所有这些的非常好的指南。
https://anidiotsguide.gitbooks.io/discord-js-bot-guide/coding-guides/storing-data-in-an-sqlite-file.html
我有一个名为 "scores" 的 table,我想过滤 UserId 并按他们的分数排序。我想为我的 Discord Bot 创建一个排名列表命令,但我不知道该怎么做。
我虽然是这样,但它不起作用:
const sql = require("sqlite");
sql.open("score.sqlite");
exports.run = (client, message, args) => {
var index = 1;
var msg = "-- Top 5 list --\n";
sql.get("SELECT * FROM scores ORDER BY points DESC LIMIT 5").then(rows => {
for (index = 1; index < 6; index++) {
if (rows[index] !== null) {
msg += index + ". " + rows[index].userId + " - " + rows[index].points + "\n";
}
}
console.log(msg);
});
};
你们能帮帮我吗?
谢谢。
https://github.com/mapbox/node-sqlite3/wiki/API#databasegetsql-param--callback
The signature of the callback is function(err, row) {}. If the result set is empty, the second parameter is undefined, otherwise it is an object containing the values for the first row.
sql.get 只有 returns 单行对象(不是 rows 数组 行 个对象)。您需要使用 sql.each 或 sql.all。
sql.all https://github.com/mapbox/node-sqlite3/wiki/API#databaseallsql-param--callback
sql.each https://github.com/mapbox/node-sqlite3/wiki/API#databaseeachsql-param--callback-complete
编辑:看起来您正在尝试制作一个不和谐点系统机器人。这里有关于所有这些的非常好的指南。 https://anidiotsguide.gitbooks.io/discord-js-bot-guide/coding-guides/storing-data-in-an-sqlite-file.html