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

discord.js报错TypeError: cannot read property 'execute' of undefined如何解决

问题根因
  • 命令文件导出格式错误:pong.js中将命令配置对象挂载到了run属性下,导致index.js加载命令时,读取到的结构不符合预期,无法正确获取name和execute属性,最终调用时提示execute未定义。
  • 命令触发逻辑不合理:index.js中硬编码了仅处理ping命令的逻辑,既没有对应pong命令的处理分支,硬编码的写法也无法支持后续新增命令的扩展。
修复步骤

1. 修正pong.js的导出规则

将module.exports.run直接改为module.exports,修改后完整代码如下:

module.exports = {
  name: 'pong',
  description: "pong cmd",
  execute(message, args){
    message.reply("pong!")
  }
}

2. 优化index.js的命令调用逻辑

替换原有硬编码的ping命令判断逻辑,改为动态匹配已加载的命令,修改后对应代码段如下:

client.on('message', async message => {
  if(!message.content.startsWith(prefix)) return;
  let args = message.content.slice(prefix.length).split(" ");
  let command = args.shift().toLowerCase()

  // 动态判断是否存在对应命令,存在则执行
  if (client.commands.has(command)) {
    client.commands.get(command).execute(message, args)
  }
})

修改完成后重启服务,发送!pong即可触发命令收到回复。

内容的提问来源于stack exchange,提问作者Irtiza Khan Labib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:39:00