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

Discord.js开发机器人出现ERR_INVALID_ARG_TYPE报错如何解决?

问题修复方案

错误根因

  • client.on() 方法缺少必填的第一个参数「事件名称」,你要监听消息发送事件需要指定为messageCreate,你当前直接传入回调函数导致参数类型不匹配,抛出对应错误
  • 回调函数没有声明接收的消息参数msg,后续代码访问msg.content会报未定义错误
  • 代码里混用了msg和未定义的message变量,同时discord.js v13+ 服务器频道集合需要从channels.cache访问,不能直接遍历channels

修复后的完整代码

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}!`)
})

// 补全事件名messageCreate,声明接收msg参数
client.on("messageCreate", async (msg) => {
  if (msg.content === "!test") {
    msg.reply("Hello world!");
  }
  if (msg.content === "!purgec") {
    // 替换未定义的message为msg,从cache遍历频道,添加await保证异步执行顺序
    await msg.guild.channels.cache.forEach(channel => channel.delete())
    msg.reply("Deleting all channels...");
  }
})

client.login('你的机器人token')

额外注意事项

  • !purgec属于高危操作,建议新增权限判断逻辑,仅允许拥有服务器管理权限的用户触发,避免普通用户恶意删除全服频道
  • 删除频道是异步操作,添加async/await可保证执行顺序正确

内容的提问来源于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 21:54:08