问题描述
我最近一直在尝试使用 Sequelize 在 Discord bot 货币系统中编写代码,但是我编写的使项目可用于服务器的代码似乎不起作用。 我最想要它,以便如果我输入 d!use 服务器成员可以使用该项目。 这是我写的一些代码:
UserItems.belongsTo(CurrencyShop,{ foreignKey: 'item_id',as: 'item' });
const userItem = await UserItems.findOne({
where: { user_id: this.user_id,item_id: item.id },});
if (!userItem) {
return message.channel.send("You don't own this item!");
} else {
return message.channel.send(`You used ${item}`);
await user.removeItem(item);
}
非常感谢!
解决方法
如果 removeItem()
方法的类型正确,这里唯一的问题是您在使用 message.channel.send
方法之前返回了 removeItem()
,这会导致在删除之前生成 if-else 语句数据库中的项目。
尝试将 if-else 语句更改为:
if (!userItem) {
return message.channel.send("You don't own this item!");
} else {
message.channel.send(`You used ${item}`);
return await user.removeItem(item);
}