【问题标题】:Problem with retrieving channel identifier - Discord.JS检索频道标识符的问题 - Discord.JS
【发布时间】:2019-11-06 15:50:36
【问题描述】:

我有这样的事情......

  const channel = await message.guild.createChannel("channel-name", {
    type: 'text',
      permissionOverwrites: [{
      id: message.guild.id,
      deny: ['SEND_MESSAGES','SEND_TTS_MESSAGES']
    }]
  }).then(channel => {
    channel.setTopic("Topic")
  });

  const loc = "./data/test.json";
  let data = JSON.parse(fs.readFileSync(loc));
  data = {
    channel.id
  };

  fs.writeFileSync(loc, JSON.stringify(data, null, 2), (err) => {
    if(err) console.log(err)
  });

我想将频道 ID“频道名称”保存在 json 文件中,但出现此错误

(node:16060) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'id' of undefined

语言:discord.js、node.js

【问题讨论】:

  • 错误在哪一行?

标签: javascript


【解决方案1】:

该错误表示变量之前的.id 找不到或未定义。但是,这也可能意味着该变量不包含该路径。这就是这里的问题。你写的 id 的路径是channel.id,然而,id var 实际上是channel.permissionOverwrites[0].id

Channel > permissionOverwrites(arr 的第一个元素)> id 值

更新这部分代码,你应该不会有问题:

  const loc = "./data/test.json";
  let data = JSON.parse(fs.readFileSync(loc));
  data = {
    channel.permissionOverwrites[0].id // Change path to id
  };

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 2021-03-03
    相关资源
    最近更新 更多