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

Discord API v13 开发purge清除频道命令时报ReferenceError: message未定义

错误原因

  • 核心错误是变量名不匹配:你在messageCreate事件的回调函数中,将接收的消息对象命名为msg,但在!purgec的判断逻辑里直接使用了未声明的message变量,触发ReferenceError变量未定义报错。
  • 额外兼容问题:discord.js v13及以上版本中,guild.channels是频道管理器,不能直接遍历,需要先获取cache属性拿到频道集合才能正常遍历执行删除操作。

修复方案

代码修改点

将message.guild.channels.forEach替换为msg.guild.channels.cache.forEach即可。

完整修复后代码

const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });

client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`)
})

client.on("messageCreate", (msg) => {
  if (msg.content === "!test") {
    msg.reply("Hello world!");
  }
  if (msg.content === "!purgec") {
    msg.guild.channels.cache.forEach(channel => channel.delete())
    msg.reply("Deleting all channels...");
  }
})

额外注意事项

  • 运行该命令需要机器人账号拥有对应服务器的管理频道权限,否则会触发权限不足报错。
  • 频道删除操作不可恢复,建议仅在私用测试服务器调试该功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:06:04