如何使用 JS、Node.JS 和 Discord.JS 获取 SQLITE 数据库中的行数?
Posted
技术标签:
【中文标题】如何使用 JS、Node.JS 和 Discord.JS 获取 SQLITE 数据库中的行数?【英文标题】:How to get a number of rows in SQLITE database using JS, Node.JS and Discord.JS? 【发布时间】:2020-09-23 21:23:24 【问题描述】:我遇到了关于使用 Sequelize 和 Sqlite 为我的 Discord 机器人创建数据库的问题。
我的表由具有以下列的行组成:“用户名”、“描述”、“键”、“名称”和“显示名称”。 我想获得一些行,例如我的表中有许多用户。
我没有找到任何特定的函数来获取特定表的多行,所以我决定使用数组来代替,在这里我推送每个“显示名称”属性。 这并没有把我带到任何地方,而不是使用 array.length() 时的数组元素数量,代码输出“对象未定义”值。
代码如下:
else if (cmd === `$prefixalist`)
// equivalent to: SELECT name FROM tags;
const notdone = [];
const done = [];
var s;
const tagList = await Tags.findAll(
attributes: ['displayname']
);
const tagListDone = await TagsDone.findAll(
attributes: ['displaynamedone']
);
notdone.push(tagList.map(t => t.displayname));
done.push(tagListDone.map(t => t.displaynamedone));
const notdonestring = notdone.join(' ');
const donestring = done.join(' ');
s = Math.round(done.length / (notdone.length + done.length));
message.reply(toString(done.length) + ' ' + toString(notdone.length));
return message.channel.send(`Список заданий: \n` + notdonestring + `\n \nСписок выполненных: \n` + donestring + '\n \nНаш прогресс: ' + toString(s) + '%');
这是代码输出: Code output
【问题讨论】:
【参考方案1】:如果您希望获得多行,只需使用count
而不是findAll
:
const tagCount = await Tags.count();
【讨论】:
感谢您的提示!不幸的是,这并没有按预期工作。我仍然得到 [object undefined] 而不是行数。我什至对这个问题进行了原始检查,所以这个函数显然有问题。 p.s.而不是上面的批量代码,我决定只留下const s1 = await Tags.count(); message.reply(toString(s1));
,但它仍然不起作用
能否在message.reply
行设置断点,手动查看s1
?
感谢您的帮助,阿纳托利!使用调试实际上有助于找到问题!干杯!以上是关于如何使用 JS、Node.JS 和 Discord.JS 获取 SQLITE 数据库中的行数?的主要内容,如果未能解决你的问题,请参考以下文章
使用 discord.js 和 Node.js 清除所有不是图像或链接的消息 [关闭]
如何使用 Node.js 检查 ram 的当前使用情况? (Discord.js 机器人)
如何将 postgres 查询分配给 node.js、Discord bot 和 postgres 集成中的变量?
您将如何将 node.js 子进程与 discord.js 一起使用?
我是 discord botting 的初学者,我在 Visual Studio 的 node.js 中使用 discord.js。我不知道如何解决这个错误