我遇到了关于使用 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
最佳答案
如果您希望获得多行,只需使用 count
而不是 findAll
:
const tagCount = await Tags.count();
关于javascript - 如何使用 JS、Node.JS 和 Discord.JS 在 SQLITE 数据库中获取多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62202313/