【问题标题】:How to get a number of rows in SQLITE database using JS, Node.JS and Discord.JS?如何使用 JS、Node.JS 和 Discord.JS 获取 SQLITE 数据库中的行数?
【发布时间】:2020-09-23 21:23:24
【问题描述】:

我遇到了关于使用 Sequelize 和 Sqlite 为我的 Discord 机器人创建数据库的问题。

我的表由具有以下列的行组成:“用户名”、“描述”、“键”、“名称”和“显示名称”。 我想获得一些行,例如我的表中有许多用户。

我没有找到任何特定的函数来获取特定表的多行,所以我决定使用数组来代替,在这里我推送每个“显示名称”属性。 这并没有把我带到任何地方,而不是使用 array.length() 时的数组元素数量,代码输出“对象未定义”值。

代码如下:

else if (cmd === `${prefix}alist`) {
  // 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

【问题讨论】:

    标签: javascript node.js sqlite sequelize.js discord.js


    【解决方案1】:

    如果您希望获得多行,只需使用count 而不是findAll

     const tagCount = await Tags.count();
    

    【讨论】:

    • 感谢您的提示!不幸的是,这并没有按预期工作。我仍然得到 [object undefined] 而不是行数。我什至对这个问题进行了原始检查,所以这个函数显然有问题。 p.s.而不是上面的批量代码,我决定只留下const s1 = await Tags.count(); message.reply(toString(s1));,但它仍然不起作用
    • 能否在message.reply 行设置断点,手动查看s1
    • 感谢您的帮助,阿纳托利!使用调试实际上有助于找到问题!干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多