Discord.js TypeError:无法读取未定义的属性“id”-channel.id

Posted

技术标签:

【中文标题】Discord.js TypeError:无法读取未定义的属性“id”-channel.id【英文标题】:Discord.js TypeError: Cannot read property 'id' of undefined - channel.id 【发布时间】:2020-04-08 15:16:15 【问题描述】:

(使用 discord.js javascript

我正在努力让用户只能在我的#commands 频道中使用命令。我在命令的开头有这段代码。

  if (msg === prefix + 'DAILY') 

   if (msg.channel.id === '29124657224757826') 

每日命令在尝试使其仅在一个频道中工作之前完美运行。 这是包含第二行的错误消息:

  if (msg.channel.id === '394615572257570826') 
                    ^
TypeError: Cannot read property 'id' of undefined

我相信我只需要一个 channel.id 变量,那么我该如何设置呢?如果这不是解决办法,那是什么?提前致谢。

【问题讨论】:

你的 msg 变量似乎是一个字符串,可能是 Message.content,而不是 Message 对象 正如@MichelFeldheim 所说,您需要使用msg.content 而不仅仅是msg。这可能在某种程度上仍然有效,但与代码和任何一种方式都是更好的做法有关。 【参考方案1】:

就像评论所说,命令处理程序中的第一行需要是 msg.content 而不仅仅是消息。另一个问题是没有定义味精。我敢打赌,这是因为您的命令处理程序不是 msg,而是类似于 message 的其他东西。基于来自 this

的另一个类似问题

您想要做的是使用 msg.guild.channels.find() 查找频道。我的问题是在第 2 行之后您要做什么,您正在寻找与 id 匹配的频道,这可能会让您更好地理解

【讨论】:

以上是关于Discord.js TypeError:无法读取未定义的属性“id”-channel.id的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取未定义的“获取”函数(discord.js)

Discord.js:TypeError:无法读取未定义的属性“删除”

(Discord.js)TypeError:无法读取未定义的属性“添加”

Discord.js:TypeError:无法读取未定义的属性“get”

discord.js TypeError:无法读取未定义的属性“发送”

node.js/discord.js:TypeError:无法读取 null 的属性“setPresence”