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

discord.js运行ready事件时报client.user未定义如何解决?

问题原因及解决方法

1. 事件参数传递错误

discord.js的ready事件触发时没有内置返回参数,你当前事件处理器中调用event.execute(...args)的写法,会导致ready.js中execute函数接收的client形参为undefined,这就是触发Cannot read property 'user' of undefined报错的核心原因。

解决方法:修改事件绑定逻辑,主动将client对象作为第一个参数传入execute函数。

2. fs模块导入顺序错误

你当前的代码先调用了fs.readdirSync读取文件,之后才导入fs模块,运行时会额外触发fs未定义的报错,需要调整导入顺序。


修改后的事件处理器完整代码

// 先导入fs模块
const fs = require('fs');
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));

for (const file of eventFiles) {
    const event = require(`./events/${file}`);
    if (event.once) {
        // 固定传入client作为第一个参数,后续为事件原生参数
        client.once(event.name, (...args) => event.execute(client, ...args));
    } else {
        client.on(event.name, (...args) => event.execute(client, ...args));
    }
}

修改完成后你原本的ready.js代码无需调整,即可正常获取到client对象输出登录信息。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:36:04