javascript - Discord.js 消息未定义
问题描述
我正在尝试制作我的第一个机器人,但由于某种原因,我收到了这个错误。我对此很陌生,所以请不要有毒<3
const Discord = require('discord.js');
const client = new Discord.Client();
client.once('ready', () => {
console.log('Ready!');
});
client.login('token');
//reading
client.on('message', message => {
console.log(message.content);
});
//youtube channel command
if (message.content === '!yt'&&'!youtube') {
message.channel.send('yt channel');
}
//--------------------
错误
ReferenceError: message is not defined
at Object.<anonymous> (C:\Users\NoVirusesAllowed\Desktop\Discord Bot\index.js:14:1)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
解决方案
message
不是定义它的函数的一部分。因为该变量是在本地定义的,所以其他函数将无法访问它。
您可能希望将if
语句移动到client.on()
块内,因为这将在每条消息上执行。
使用您当前的代码,该if
语句尝试在脚本开始时执行一次,并且不知道它指的是什么消息。
编辑:我还修改了if
语句中的条件。以前,如果消息是且不为零,则条件将'!yt'
成功'!youtube'
。如果任一消息等于'!yt'
or '!youtube'
,您可能希望条件成功,这可以使用 OR 运算符完成||
。
const Discord = require('discord.js');
const client = new Discord.Client();
client.once('ready', () => {
console.log('Ready!');
});
client.login('token');
//reading
client.on('message', message => {
console.log(message.content);
//youtube channel command
if (message.content == '!yt' || message.content == '!youtube') {
message.channel.send('yt channel');
}
});
//--------------------
推荐阅读
- django - /shop/ django 的 NoReverseMatch
- python - 将球形网格插值到常规网格?
- r - 运行模型或计算()火花表时出现“java.lang.OutOfMemoryError:Java 堆空间”
- asp.net-mvc - 在网格 Telerik 的 CRUD 中添加一行后,更新或删除按钮不起作用
- dojo - ReferenceError:模板未定义
- c# - 未定义 Google 照片 API 身份验证会话
- android - 延迟 Google Maps API 的网络请求
- c# - 如何从 Visual Studio 并行运行 Asp.Net WebApp 多次?
- c - 在 C 中使用 sprintf 时出现分段错误
- python - 如何使用循环函数更新 python Kivy 应用程序