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

Discord.js机器人发送回复后崩溃,请求修复帮助

修复你的Discord.js机器人崩溃问题

我帮你找出了几个导致机器人回复后崩溃的关键问题,下面是具体的修复方案和完整代码:

问题排查

你的代码存在三个核心问题:

  • 语法错误:message事件的回调函数没有正确闭合(最后缺失一个}),Node.js解析代码时会直接抛出语法错误导致崩溃。
  • 缺少登录逻辑:没有调用client.login()让机器人连接到Discord服务器,这会导致机器人无法正常初始化,甚至启动后直接崩溃。
  • 版本兼容性问题:如果使用Discord.js v13及以上版本,原有的message事件已被替换为messageCreate,并且需要显式声明网关意图(Intents)才能接收消息。

修复后的完整代码

适配Discord.js v12及以下版本

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('ready', () => {
  console.log(`Bot ready`);
});

client.on('message', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
}); // 补上缺失的闭合大括号

// 替换为你的机器人令牌,令牌可在Discord开发者后台获取
client.login('YOUR_BOT_TOKEN_HERE');

适配Discord.js v13及以上版本(推荐使用最新稳定版)

const { Client, GatewayIntentBits } = require('discord.js');
// 声明所需的网关意图,确保能接收服务器内的消息内容
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent // 此意图需在Discord开发者后台手动启用
  ]
});

client.on('ready', () => {
  console.log(`Bot ready`);
});

// v13+版本使用messageCreate事件替代原message事件
client.on('messageCreate', msg => {
  if (msg.content === 'ping') {
    msg.reply('Pong!');
  }
});

// 替换为你的机器人令牌
client.login('YOUR_BOT_TOKEN_HERE');

额外注意事项

  • 若使用v13+版本,必须在Discord开发者后台的机器人设置中启用Message Content Intent,否则机器人无法读取消息内容。
  • 务必妥善保管机器人令牌,泄露令牌会导致他人恶意控制你的机器人。
  • 安装对应版本的Discord.js:
    • 安装v12:npm install discord.js@12
    • 安装最新稳定版(v14):npm install discord.js

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:17:23