javascript - Discord.js : Cannot read property 'set' of undefined

标签 javascript node.js discord

我正在使用 discord.js 创建机器人。 这是我的代码:

var Discord = require('discord.js');
const swarmConfig = require('./swarmConfig.json');

var swarmbot = new Discord.Client();
swarmbot.login('myToken');

fs.readdir('./commands/', (err, files) =>{
  if(err) console.log(err);
  var jsFiles = files.filter(f => f.split('.').pop() === 'js');

  if(jsFiles.length <=0){
    console.log('Cant find commands');
    return;
  }

  jsFiles.forEach((f, i) =>{
    let fileGet = require(`./commands/${f}`);
    console.log(`${f} loaded!`);
    swarmbot.commands.set(fileGet.help.name, fileGet);
  });
});

swarmbot.on("message", async message =>{
  if (message.author.swarmbot) 
    return;
  var prefix = swarmConfig.prefix;
  var command = messageArray[0];
  var arguments = messageArray.slice(1);

  var commands = swarmbot.commands.get(command.slice(prefix.length));
  if(commands) 
    commands.run(swarmbot, message, arguments);
});

但是如果我尝试启动它,我会得到这个错误:

C:\Users\purul\Desktop\swarm-dsbot\swarm.js:25
swarmbot.commands.set(fileGet.help.name, fileGet);
                  ^
TypeError: Cannot read property 'set' of undefined
at jsFiles.forEach (C:\Users\purul\Desktop\swarm-dsbot\swarm.js:25:23)
at Array.forEach (<anonymous>)
at fs.readdir (C:\Users\purul\Desktop\swarm-dsbot\swarm.js:22:11)
at FSReqWrap.oncomplete (fs.js:141:20)

我仍在学习 JavaScript,感谢所有对此提供帮助的人。

最佳答案

如果我们查看 Discord.js 的文档,会发现没有这样的对象称为“命令”。 链接:https://discord.js.org/#/docs/main/stable/search?q=commands 我猜你是从一个文件中加载它们,所以你应该创建一个包含命令的 js 文件,然后将它们加载到你的主文件中。

可能的解决方案引用:https://stackoverflow.com/a/51333277/7363404 (你也应该检查问题)

关于javascript - Discord.js : Cannot read property 'set' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54012583/

相关文章:

javascript - 如何使用 JQuery 将 GridView 呈现为 Accordion 菜单

javascript - 从 Javascript 调用 Typescript 类时的语法

javascript - Discord bot 客户端在尝试运行 bot 时丢失意图错误

python - Pymysql 语法错误,我不明白

javascript - AngularJS $interval 显示计时器(间隔何时结束)

javascript - 如何获取网页元素中文本的矩形(而不是元素本身的矩形)?

javascript - JQuery从函数到其他JQuery函数的传递编号

node.js - 如何使用 async/await 进行正确的错误处理

node.js - Sass 加载器在 webpack 中不起作用

javascript - 在discord.js中获取不共享同一服务器的用户的头像