不和谐.js |类型错误: 无法读取未定义的属性'toLowerCase'



我正在尝试制作一个discord bot命令(/role(,当我尝试该命令时,它有效,但当我更新到最新的节点版本时,它不起作用,它记录了以下信息:

TypeError: Cannot read property 'toLowerCase' of undefined
at Object.execute (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropcommandsrole.js:8:34)
at Client.<anonymous> (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropindex.js:69:11)
at Client.emit (events.js:315:20)
at MessageCreateAction.handle (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropnode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropnode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:386:31)
at WebSocketShard.onPacket (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:436:22)
at WebSocketShard.onMessage (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropnode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:293:10)
at WebSocket.onMessage (C:UsersJakub SokolDocumentsCodingDiscord BotsWaterDropnode_moduleswslibevent-target.js:125:16)        
at WebSocket.emit (events.js:315:20)

这是代码:

module.exports = {
name: 'role',
description: "Assign yourself a role!",
usage: "[role]",
cooldown: 5,
execute(message, args){
const roleName = args[0].toLowerCase();
let takeroles = ['Legend', 'Ultra', 'Onlylegend']
if(roleName === "legend"){
message.member.roles.add('734832820710801550').catch(console.error);
message.reply("gave you the Legend role!");
} else if(roleName === "ultra"){
message.member.roles.add('734832749063700550').catch(console.error);
message.reply("gave you the Ultra role!");
} else if (roleName === "onlylegend" && message.member.roles.cache.has('734832820710801550')) {
message.member.roles.add('734836969133309962').catch(console.error);
message.reply("gave you the Only Legend role!");
} else if (roleName === "onlylegend" && !message.member.roles.cache.has('734832820710801550')) {
message.reply("you don't have permission to take that role!");
}
}
}
foo.bar;

无法读取"foo"的属性"bar"这里,foo是未定义的。

在您的实例中,args[0]是未定义的。您应该进行一些检查,以确保至少有一个参数通过if (!args.length) return message.reply(...)提供

基本上,您一定只是键入了!role而不是!role legend or whatever

相关内容

最新更新