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

DiscordJS v14获取服务器所有者报错:Cannot read properties of undefined (reading 'user')

Discord.JS v14 解决guildCreate事件获取服务器所有者标签报错问题

错误原因

报错Cannot read properties of undefined (reading 'user')的核心问题是:机器人刚加入服务器时,guild.members.cache并未加载服务器所有者的成员数据,直接用get(ownerId)会返回undefined,自然无法读取user属性。

解决方案

不要依赖成员缓存,改用Discord.js v14提供的fetchOwner()方法直接获取所有者信息,或者显式fetch成员数据。

修正后的代码

module.exports = {
  name: 'guildCreate',
  execute: async (guild, client) => {
    try {
      // 推荐方法:直接获取所有者成员对象
      const owner = await guild.fetchOwner();
      console.log(owner.user.tag);

      // 可选:若需单独获取成员对象,显式fetch
      // const ownerMember = await guild.members.fetch(guild.ownerId);
      // console.log(ownerMember.user.tag);
    } catch (e) {
      console.error('获取所有者信息失败:', e);
    }
  }
};

关键说明

  • guild.fetchOwner()是v14官方推荐的方法,内部会自动处理缓存和网络请求,确保能拿到最新的所有者数据
  • 所有fetch操作都是异步的,必须加await关键字
  • 避免在新加入服务器的场景下直接读取members.cache,此时缓存大概率不完整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:35:29