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

discord.js中如何定义guild?创建角色时报guild未定义错误如何解决

错误解决方案

报错根因

ReferenceError: guild is not defined 报错的核心原因是你调用guild.roles.create()前没有对guild变量做声明和赋值。从你后续代码的message.guild调用可以判断,当前命令是消息触发的场景,服务器对象可以直接通过message.guild获取。

额外隐藏问题

你原有代码还有两个会导致后续报错的逻辑问题:

  • roles.create是异步方法,你没有等待创建完成就直接查询角色、给成员加角色,大概率会出现查不到刚创建角色的问题
  • Discord.js v12及以上版本,角色列表需要从cache属性中查询,直接调用roles.find会抛出方法不存在的错误

修正后代码

// 替换未定义的guild为消息上下文的服务器对象
message.guild.roles.create({
  data: {
    name: 'Boots',
    color: 'BLUE',
  },
  reason: 'very cool',
})
.then(createdRole => {
  // 直接使用接口返回的已创建角色对象,无需额外查询
  return member.roles.add(createdRole);
})
.then(() => {
  message.channel.bulkDelete(1);
  message.channel.send('Mhm, very cool');
})
.catch(console.error);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:45:02