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

使用Node.js开发Discord机器人无法编辑指定ID消息问题求助

问题解决办法

报错原因

你遇到的TypeError: Cannot read properties of undefined (reading 'fetchMessage')报错是discord.js版本API不兼容导致:
fetchMessage 是discord.js v11及更早版本的方法,v12及之后的版本该方法已被移除,迁移到了channel.messages命名空间下。

修正后的代码

首先确认你已经给机器人开启了对应频道的「查看消息」「发送消息」「编辑消息」权限,且待编辑的目标消息是该机器人账号发送的(Discord不允许编辑其他账号发送的消息),然后用下面的代码替换原有逻辑:

// 注意:discord.js v14+ 消息接收事件已从 "message" 改为 "messageCreate"
client.on("messageCreate", async msg => {
  try {
    const channel = client.channels.cache.get('1234567890');
    // 替换旧的fetchMessage为messages.fetch
    const targetMessage = await channel.messages.fetch('0987654321');
    await targetMessage.edit(output(msg));
  } catch (err) {
    // 可自行处理错误,比如消息不存在、无权限等场景
    console.error('编辑消息失败:', err);
  }
})

额外注意事项

  • 如果你还在使用discord.js v12/v13版本,消息事件名还是message,只需要修改fetchMessage部分即可
  • 如果output返回的是embed等非纯文本内容,需要对应调整edit的传参格式,纯字符串可以直接传入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:54:08