javascript - 为我的discord.js 机器人创建排名列表

标签 javascript sqlite discord.js

我有一个名为“scores”的表,想要过滤 UserId 并按分数排序。我想为我的 Discord 机器人创建一个排名列表命令,但我不知道如何执行此操作。

我虽然是这样的,但它不起作用:

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 仅返回单个行对象(而不是 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

关于javascript - 为我的discord.js 机器人创建排名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45435130/

相关文章:

javascript - 无法在 MacOS 上打开 Intellij

django - 在 OS X 上安装 Spatialite for python (GeoDjango)

javascript - 提及检测discord bot javascript的问题

javascript - 如何检查谁邀请了谁 Discord.js

javascript - 获取用户 ID 并将其保存到各个行会

javascript - 表内按钮的 ZeroClipboard/ng-clip 悬停状态问题

javascript - 在 Ember-data 中以自定义方式保存属性

ruby-on-rails - add_foreign_key不创建外键

android - (21) 使用 NULL 预准备语句调用 API

javascript - Gulp autoprefixer 给出了错误的输出