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

Ubuntu服务器部署Discord Bot遇ReferenceError: Client未定义问题求助

解决Discord机器人ReferenceError: Client is not defined问题

错误原因分析

你遇到的ReferenceError: Client is not defined大概率是discord.js版本不兼容导致的——当前代码写法对应v12/v13版本,但如果服务器上安装的是v14+版本,导入方式和API都有变更,就会触发这个错误。另外也可能是依赖包损坏。

分步解决方案

1. 检查discord.js版本

在项目目录下执行命令查看版本:

npm list discord.js

如果版本是14.x.x及以上,需要调整代码写法;如果是旧版本,跳过这步直接检查依赖。

2. 修复依赖(通用步骤)

如果依赖包损坏,执行以下命令重装:

rm -rf node_modules package-lock.json
npm install

3. 适配v14+版本的代码修改

v14+版本要求解构导入Client,且意图需要使用GatewayIntentBits枚举,同时原message事件已替换为messageCreate:

const { Client, GatewayIntentBits } = require('discord.js');

// 注意:需要同时启用必要意图,否则无法接收消息
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.MessageContent,
    GatewayIntentBits.GuildMessages
  ]
});

client.login("你的机器人Token");

client.on('messageCreate', message => {
  if (message.content === '!hello') {
    message.channel.send('Nazdar!');
  }
});

client.once('ready', () => {
  console.log('Ready!');
});

额外注意:必须在Discord开发者后台的机器人页面,手动开启Message Content Intent权限,否则无法读取消息内容。

4. 若坚持使用旧版本(v12/v13)

如果要保留原有代码写法,可以指定安装旧版本:

npm install discord.js@13.16.0

但旧版本已停止维护,建议优先升级到v14+。


内容的提问来源于stack exchange,提问作者Štěpán Putzer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:05:27