You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js avatar头像命令报错TypeError: Cannot read property 'members' of undefined

discord.js avatar命令报错解决方案

你遇到的报错为:

TypeError: Cannot read property 'members' of undefined

该报错触发自代码中const member = message.mentions.members.first() || message.member; 这一行,核心原因是message.mentions属性为undefined,尝试读取其下的members属性触发类型错误,对应可按以下场景排查修复:

  • 传参顺序不匹配
    你定义的execute函数参数顺序为(client, message, args),但绝大多数discord.js社区的命令处理模板,调用execute时默认传参顺序为(message, args, client),如果你的框架调用时参数顺序和定义不符,会导致函数内部拿到的message变量实际是其他值,自然不存在mentions属性。
    修复方法:调整execute的参数顺序和调用逻辑对齐,通用写法为:

    execute: async(message, args, client) => {
      // 原有逻辑
    }
    
  • 命令在私聊(DM)频道触发
    只有服务器内的消息才会存在message.mentions.members属性,私聊场景下该属性不存在。
    修复方法:在函数开头添加频道类型判断:

    execute: async(client, message, args) => {
      // 新增判断
      if (!message.guild) return message.reply('该命令仅支持在服务器内使用');
      // 原有逻辑
    }
    
  • 增加属性读取兜底
    你可以使用可选链操作符避免访问不存在的属性时报错,调整成员获取逻辑为:

    const member = message.mentions?.members?.first() || message.member;
    

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:54:04