discord.js | 无法读取未定义的属性“集”

我在 discord.js v12 中创建我的命令处理程序,但我一直收到此错误,即:


无法读取未定义的属性“集”


这是我的代码,这段代码在一个名为handlers


const { readdirSync, readdir } = require('fs');

const ascii = require('ascii-table');

let table = new ascii('commands');


table.setHeading('Commands', 'Status');


module.exports = (client) => {

 readdirSync('./commands/').forEach((dir) => {

  const commands = readdirSync(`./commands/${dir}/`).filter((file) =>

   file.endsWith('.js')

  );

  for (let file of commands) {

   let pull = require(`../commands/${dir}/${file}`);

   if (pull.name) {

    client.commands.set(pull.name, pull);


    table.addRow(file, '✅');

   } else {

    table.addRow(

     file,

     `❌ -> Missing a help.name, or help.name in not a string.`

    );

    continue;

   }

   if (pull.aliases && Array.isArray(pull.aliases))

    pull.aliases.forEach((alias) => client.aliases.set(aliases, pull.name));

  }

 });

 console.log(table.toString());

};

在我的切入点,即main.js,我制作了一个新系列。


慕运维8079593
浏览 92回答 1
1回答

倚天杖

这里的问题是你在一个单独的文件中工作,所以你无法访问另一个文件中定义的变量为了解决这个问题,在你的 main.js 文件中你需要使用一个module.exports.client = client并且在 handler.js 文件中你可以做const client = require("../main.js").client您还必须确保在定义时client.commands为其提供正确的对象类型。一定是client.commands = new Discord.Collection()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript