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

Discord.js报错ReferenceError: message is not defined,如何修复?

修复「ReferenceError: message is not defined」错误的方案

这个错误的根源很直观——你在message事件的回调函数里把参数命名成了msg,但后续代码里却错误地使用了message这个未定义的变量。变量名必须保持统一才能被JavaScript正确识别,下面给你两种简单的修复方式:

方式一:统一使用message作为参数名

把回调函数的参数从msg改成message,这样后续所有用到消息对象的地方都用message即可:

const client = new Discord.Client();
const ayarlar = require('./ayarlar.json');
var prefix = ayarlar.prefix;
client.on('ready', () => {
 console.log(`Botun olan ${client.user.tag}sunucuya giriş yaptı ve artık aktif!`);
});
client.on('message', message => {
 if (message.content.toLowerCase() === 'salak aziz') {
 message.channel.send('nerden bildin? helal olsun');
 }
 if (message.content === `${prefix}mal`) {
 message.channel.send('Aziz Mert');
 } else if (message.content === `${prefix}adam`) {
 message.channel.send('Ata');
 }
});

方式二:统一使用msg作为变量名

保持回调参数为msg,把后续所有message替换成msg:

const client = new Discord.Client();
const ayarlar = require('./ayarlar.json');
var prefix = ayarlar.prefix;
client.on('ready', () => {
 console.log(`Botun olan ${client.user.tag}sunucuya giriş yaptı ve artık aktif!`);
});
client.on('message', msg => {
 if (msg.content.toLowerCase() === 'salak aziz') {
 msg.channel.send('nerden bildin? helal olsun');
 }
 if (msg.content === `${prefix}mal`) {
 msg.channel.send('Aziz Mert');
 } else if (msg.content === `${prefix}adam`) {
 msg.channel.send('Ata');
 }
});

核心逻辑就是保证参数名和后续使用的变量名完全一致,这样JavaScript就能正确找到消息对象,不会再抛出未定义的错误啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:02:39