Javascript 无法读取属性';运行';未定义的不一致js

Javascript 无法读取属性';运行';未定义的不一致js,javascript,discord.js,Javascript,Discord.js,有一个帖子,但它似乎并没有解决我的问题。我正在编写一个简单的discord.js程序,当我创建一个名为forceverify的新命令时,它给出了一个错误“无法读取未定义的'run'属性” main.js: const Discord = require('discord.js'); const client = new Discord.Client(); let fetch = require('node-fetch'); const prefix = '!' const fs = r

有一个帖子,但它似乎并没有解决我的问题。我正在编写一个简单的discord.js程序,当我创建一个名为forceverify的新命令时,它给出了一个错误“无法读取未定义的'run'属性”

main.js:

const Discord = require('discord.js');

const client = new Discord.Client();

let fetch = require('node-fetch');

const prefix = '!'

const fs = require('fs');

client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
    const command = require(`./commands/${file}`);

    client.commands.set(command.name, command);
}

client.once('ready', () => {
    console.log('Loaded');
})

client.on('message', message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase();

    if (command === 'help') {
        client.commands.get('help').execute(message, args, Discord);
    } else if (command === 'verify') {
        client.commands.get('verify').execute(message, args, Discord);
    } else if (command === 'forceverify') {
        client.commands.get('forceverify').run(message, args, Discord);
    }
})

client.on('guildMemberAdd', member => {
    const welcomeChannel = client.channels.cache.find(ch => ch.name === 'member-log');

    if (!welcomeChannel) {
        console.log('No channel was found');
    }

    welcomeChannel.send(`Welcome!`);

client.login('The token is there');
forceverify.js

const { DiscordAPIError } = require("discord.js");
const fetch = require("node-fetch");

const packageData = require("../package.json");

module.exports = {
  name: 'verify',
  description: "Verify yourself to get access to the server",
  execute(message, args, Discord) {
    if (message.member.roles.cache.has('805210755800367104')) {
      const clientUser = client.users.fetch(args[1]);
      let myRole = message.guild.roles.cache.get("805531649131151390");

      fetch(`https://api.sk1er.club/player/${args[0]}`)
        .then(res => res.json())
        .then(({ player }) => {
          clientUser.member.setNickname(player.displayname).catch(console.error);
        })
        .catch(err => console.log(err));
    } else {
      message.channel.reply("You don't have sufficient permissions.");
    }
  }
}

其他每个命令都能正常工作,但由于某些原因,这个命令根本不起作用。我尝试了另一个问题所说的方法(即add.execute to module.exports或change.execute to.run),但都不起作用,可能是因为它找不到文件(所有内容都拼写正确)

forceverify.js
导出的文件名为
verify
,但应该是
forceverify
。因此,
forceverify
命令未注册,
client.commands.get('forceverify')
返回
未定义的

// commands/forceverify.js

module.exports = {
  name: 'forceverify',
  description: 'Force verify yourself to get access to the server',
  execute(message, args, Discord) {
    // do stuff
  }
}
在调用命令时,应该调用
execute
函数

client.commands.get('forceverify').execute(message, args, Discord)
您可以重构代码以简化命令调用代码

client.on('message', (message) => {
  if (!message.content.startsWith(prefix) || message.author.bot) {
    return
  }

  const args = message.content.slice(prefix.length).split(/ +/)
  const command = args.shift().toLowerCase()

  if (!client.commands.has(command)) {
    return
  }

  client.commands.get(command).execute(message, args, Discord)
})

forceverify.js
导出的文件名为
verify
,但应为
forceverify
。因此,
forceverify
命令未注册,
client.commands.get('forceverify')
返回
未定义的

// commands/forceverify.js

module.exports = {
  name: 'forceverify',
  description: 'Force verify yourself to get access to the server',
  execute(message, args, Discord) {
    // do stuff
  }
}
在调用命令时,应该调用
execute
函数

client.commands.get('forceverify').execute(message, args, Discord)
您可以重构代码以简化命令调用代码

client.on('message', (message) => {
  if (!message.content.startsWith(prefix) || message.author.bot) {
    return
  }

  const args = message.content.slice(prefix.length).split(/ +/)
  const command = args.shift().toLowerCase()

  if (!client.commands.has(command)) {
    return
  }

  client.commands.get(command).execute(message, args, Discord)
})

意外地忘记从.run更改回.execute(它仍然不工作),因为它仍然未定义。意外地忘记从.run更改回.execute(它仍然不工作),因为它仍然未定义