【问题标题】:discord.js Error: ENOENT: no such file or directory, scandir './commands'discord.js 错误:ENOENT:没有这样的文件或目录,scandir './commands'
【发布时间】:2021-12-04 06:12:32
【问题描述】:

我正在尝试完成这项工作,但它一直说我的文件夹的directory 是错误的,但它是正确的。我得到了另一个无法解决这个问题的人的帮助。有人可以帮忙吗?

代码:

const { Client, Intents, Collection } = require('discord.js')
const { REST } = require('@discordjs/rest')
const { Routes } = require('discord-api-types/v9')
const Discord = require('discord.js')

const fs = require('fs')
const intents = new Discord.Intents(32767);
const client = new Discord.Client({ intents });

const config = require('./Data/config.json')

const versionNumber = "V1.0.0"

client.once("ready", () => {
    console.log('-------------------------------------------');
    console.log(`| Successfully logged in as Logic RP#7590 |`);
    console.log('-------------------------------------------');

    const commands = []
    const commands_information = new Collection();
    const commandFiles = fs.readdirSync("./commands").filter(file => file.endsWith(".js"))

    for (const file of commandFiles) {
        const command = require(`./commands/${file}`)
        console.log(`Command loaded: ${command.data.name}`)
        commands.push(command.data.toJSON())
        commands_information.set(command.data.name, command);
    }

    const rest = new REST({ version: '9' }).setToken(config.token);

    (async () => {
        try {
            console.log('Started refreshing application (/) commands.');
            await rest.put(
                Routes.applicationGuildCommands(config.botConfiguration.client, config.botConfiguration.guild),
                { body: commands },
            );
            console.log('Successfully reloaded application (/) commands.');
        } catch (error) {
            console.error(error);
        }
    })();

    client.on('interactionCreate', async interaction => {
        if (!interaction.isCommand()) return;

        const { commandName } = interaction;

        if (!commands_information.has(commandName)) return;

        try {
            await commands_information.get(commandName).execute(client, interaction, config);
        } catch (error) {
            console.error(error);
            await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
        }
    })
})

client.on("guildMemberAdd", async (member) => {
    let members = client.guilds.cache.reduce((a, g) => a + g.memberCount, 0);
    console.log(`${member.user.tag} has joined Logic RP`);
    console.log('-------------------------------------------');
    const embed = new Discord.MessageEmbed()
        .setTitle(`Welcome to the ${member.guild.name} Discord server!`)
        .setThumbnail(member.user.displayAvatarURL({ dynamic: true }))
        .setColor('GREEN')
        .addFields(
            { 
                name: "✅ Have fun!",
                value: "The most important thing for us is that YOU have fun! You can chat with others in <#898349995315576883> and have all the fun that you want or talk to the community.", 
                inline: false 
            },
            { 
                name: "???? Check out our rules!",
                value: "If you'd like to stay in this server, we ask that you read and follow all of our rules in <#898346754926338048>. This is important.",
                inline: false 
            },
            { 
                name: "???? Get your roles!", 
                value: "If you'd like to get notified for certain events or things related to this server, please check out <#898350339571462155> and get the roles that you want.", 
                inline: false 
            },
        )
        .setFooter(`Logic RP | ${versionNumber} - Member #${members}`)
        .setTimestamp()
    
    client.channels.cache.get('898346590245363772').send({embeds: [embed]});
})

client.login(config.token);

//npm run dev

目录:

错误:

-------------------------------------------
| Successfully logged in as Logic RP#7590 |
-------------------------------------------
node:internal/fs/utils:344
    throw err;
    ^

Error: ENOENT: no such file or directory, scandir './commands'
    at Object.readdirSync (node:fs:1390:3)
    at Client.<anonymous> (C:\Users\name\Desktop\Logic RP Discord Bot\src\index.js:21:29)
    at Object.onceWrapper (node:events:510:26)
    at Client.emit (node:events:390:28)
    at WebSocketManager.triggerClientReady (C:\Users\name\Desktop\Logic RP Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:383:17)
    at WebSocketManager.checkShardsReady (C:\Users\name\Desktop\Logic RP Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:366:10)
    at WebSocketShard.<anonymous> (C:\Users\name\Desktop\Logic RP Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:188:14)
    at WebSocketShard.emit (node:events:390:28)
    at WebSocketShard.checkReady (C:\Users\name\Desktop\Logic RP Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:474:12)
    at WebSocketShard.onPacket (C:\Users\name\Desktop\Logic RP Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:446:16) {
  errno: -4058,
  syscall: 'scandir',
  code: 'ENOENT',
  path: './commands'
}

【问题讨论】:

    标签: javascript node.js directory discord discord.js


    【解决方案1】:

    这里的问题是fspackage.json 所在的目录作为其基础。并且从您的代码中,fs 试图找到一个名为 commands 的文件夹,该文件夹与不存在的 src 文件夹处于同一级别。

    所以您更正的目录将是

    fs.readdirSync("./src/commands");
    

    【讨论】:

    • 非常感谢,我可以发誓我试过一定是做了一个类型或什么的。如果允许,我会将其标记为正确!祝你有美好的一天。 +1
    • 乐于助人,快乐编码:D
    • 同样快乐编码:D
    猜你喜欢
    • 2022-09-30
    • 2021-04-27
    • 2017-12-28
    • 2021-12-05
    • 1970-01-01
    • 2022-06-28
    • 2019-10-14
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多