定义变量时无法读取未定义的 属性 'find'

Cannot read property 'find' of undefined when the variable is defined

我遇到类型错误,但我认为它不应该是正确定义的变量(请纠正我!)

已经环顾四周试图找到它;但是,即使使用 'fixes' 它仍然给了我错误。对于我确实犯下的错误,我深表歉意!

var parts = message.content.split(" ");
if (message.content.startsWith(prefix + "sr")) {
  const servguild = message.guild.id;
  const member = message.mentions.members.first();
  const role = servguild.roles.find('name', parts[2]);
  member.addRole(role);
}

您已将 servguild 定义为 message.guild.id;,并试图访问它的 roles 属性,因此试图访问 message.guild.id.roles。但是,roles属性只存在于guild属性上,不存在于guild.id属性上。

Discord Developer Portal Docs for Guild可以看出一个公会的定义如下:

{
    "id": "41771983423143937",
    "application_id": null,
    "name": "Discord Developers",
    "icon": "86e39f7ae3307e811784e2ffd11a7310",
    "splash": null,
    "owner_id": "80351110224678912",
    "region": "us-east",
    "afk_channel_id": "42072017402331136",
    "afk_timeout": 300,
    "embed_enabled": true,
    "embed_channel_id": "41771983444115456",
    "verification_level": 1,
    "default_message_notifications": 0,
    "explicit_content_filter": 0,
    "mfa_level": 0,
    "widget_enabled": false,
    "widget_channel_id": "41771983423143937",
    "roles": [],
    "emojis": [],
    "features": ["INVITE_SPLASH"],
    "unavailable": false
}

要修复您的代码,请将 const servguild = message.guild.id; 更改为 const servguild = message.guild;