开发Discord Bot遇TypeError: Cannot read property 'send' of undefined求助
排查
TypeError: Cannot read property 'send' of undefined 问题 这个错误的根源很简单——你代码里出现了一个拼写错误!
看你helpCommand函数里的这一行:
if (arguments.length == 0) { receivedMessage.channnel.send("Im not sure what are you looking for.Try using `!help [topic]`") }
这里把channel拼成了channnel(多了一个'n'),导致receivedMessage.channnel是undefined,自然没法调用send方法,这就是报错的直接原因。
修正后的完整代码
只需要把拼写错误的channnel改成正确的channel即可,另外我还帮你调整了两处小细节让体验更顺畅:
if(receivedMessage.content.startsWith("!")) { processCommand(receivedMessage) } function processCommand(receivedMessage) { let fullCommand = receivedMessage.content.substr(1) let splitCommand = fullCommand.split(" ") let primaryCommand = splitCommand[0] let arguments = splitCommand.slice(1) if (primaryCommand == "help") { helpCommand(arguments, receivedMessage) } } function helpCommand(arguments, receivedMessage){ if (arguments.length == 0) { receivedMessage.channel.send("I'm not sure what you're looking for. Try using `!help [topic]`") } else { receivedMessage.channel.send("It looks like you need help with " + arguments.join(" ")) } }
- 修正了原句里的语法小问题("Im"→"I'm","are you"→"you're");
- 当用户输入多参数的
!help指令时,用arguments.join(" ")把参数数组拼成完整的字符串,避免直接输出数组(比如输入!help setup bot,会显示"setup bot"而不是"setup,bot")。
内容的提问来源于stack exchange,提问作者M. WALEED
相关产品推荐
相关产品推荐

