如何使用 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。我不知道如何解决这个错误

如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js