Javascript 如何获取引用项,以便在clearinventory命令中删除它们

Javascript 如何获取引用项,以便在clearinventory命令中删除它们,javascript,discord,discord.js,quick.db,Javascript,Discord,Discord.js,Quick.db,我正在尝试执行一个clearinventory命令,以便它通过提及删除玩家的库存,或者如果没有提及,它将删除您自己的库存,但我不断收到一个名为RangeError的错误:提供了太多的参数值这是代码: const db = require('quick.db'); const Discord = require('discord.js'); module.exports = { name: "clearinventory", descrition: "c

我正在尝试执行一个clearinventory命令,以便它通过提及删除玩家的库存,或者如果没有提及,它将删除您自己的库存,但我不断收到一个名为RangeError的错误:提供了太多的参数值这是代码:

const db = require('quick.db');
const Discord = require('discord.js');

module.exports = {

  name: "clearinventory",

  descrition: "clear a players inventory",

  async run(client, message, run) {

    let target = message.mentions.users.first() || message.author;
    let items = await db.fetch(target.id, {
      items: []
    });

    if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send('You can\'t use that!')

    db.delete(items);

    message.channel.send(`${target}\'s inventory was successfully cleared!`)

  }


}

我尝试在变量项中指定项,也尝试在
db.delete(items,'car')
中指定项,但这不起作用

我在没有任何上下文的情况下查看这一问题是哪一行引起的

db.delete
将字符串作为第一个参数,该字符串是您设置的数据(目标用户ID)的键。在本例中,您传递的是
items
,它实际上是一个格式为
{items:[/*items*/]}
的对象,而不是字符串。我假设您正在尝试删除玩家库存中的项目,在这种情况下,您可以执行以下两种操作之一:

  • 完全删除玩家的信息。您可以通过删除数据库中的条目来实现这一点。如果您计划在同一条目中添加更多信息,我建议使用第二个选项
  • //target.id是一个字符串,所以您可以直接在这里使用它。
    db.delete(target.id);
    
  • 通过将
    项目设置为空数组来清除玩家的库存(仅限)。这充分利用了quick.db使用点表示法的能力
  • //.项目,例如12345678909877543212.项目
    db.set(`${target.id}.items`,[]);