首页 > 解决方案 > 我的不和谐 js 命令处理程序不起作用

问题描述

嘿,我似乎无法让我的命令处理程序与多个命令文件一起工作有人可以帮我解决这个问题吗?我尝试了多种方法,我似乎无法让它与多个文件夹一起工作。我对 Discord js 也有点陌生,我有一个工作,然后我想让它更有条理,但我似乎无法让它工作

const fs = require(`fs`);

module.exports = (client, Discord) => {
    const command_files = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
    const command_files = fs.readdirSync('./moderationcommands/').filter(file => file.endsWith('.js'));

    for (const file of command_files) {
        const command = require(`../commands/${file}`, `../moderationcommands/${file}`);
        if (command.name) {
            client.commands.set(command.name, command);
        } else {
            continue;
        }
    }
}

这是错误

PS C:\Users\lolzy\OneDrive\Desktop\discordbot> node .
C:\Users\lolzy\OneDrive\Desktop\discordbot\handlers\command_handler.js:5
    const command_files = fs.readdirSync('./moderationcommands/').filter(file => file.endsWith('.js'));
          ^

SyntaxError: Identifier 'command_files' has already been declared
    at wrapSafe (internal/modules/cjs/loader.js:984:16)
    at Module._compile (internal/modules/cjs/loader.js:1032:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
    at Module.load (internal/modules/cjs/loader.js:933:32)
    at Function.Module._load (internal/modules/cjs/loader.js:774:14)
    at Module.require (internal/modules/cjs/loader.js:957:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at C:\Users\lolzy\OneDrive\Desktop\discordbot\main.js:13:5
    at Array.forEach (<anonymous>)
    at Object.<anonymous> (C:\Users\lolzy\OneDrive\Desktop\discordbot\main.js:12:38)
PS C:\Users\lolzy\OneDrive\Desktop\discordbot>

标签: node.jsdiscorddiscord.js

解决方案


您将两个变量命名为完全相同:

const command_files = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
const command_files = fs.readdirSync('./moderationcommands/').filter(file => file.endsWith('.js'));

你只需要确保他们有不同的名字


推荐阅读