Mi bot tiene un comando ubicado en /commands/developer/reload.js y su propósito es descargar un comando y luego cargarlo nuevamente. Pero cuando intenta encontrar la carpeta de comandos, arroja un error que dice Cannot find module '../undefined/help.js' pero la ruta es ../misc/help.js
Código:
const fs = require('fs'); module.exports = { name: 'reload', description: 'Reloads a command', args: true, usage: '<command_name>', cooldown: 1, aliases: ['rl', 'restart'], execute(message, args) { const commandName = args[0].toLowerCase(); const command = message.client.commands.get(commandName) || message.client.commands.find(cmd => cmd.aliases && cmd.aliases.includes(commandName)); if(!command) { return message.channel.send(`There is no command called '${commandName}'`); } // commandFolders returns undefined const commandFolders = fs.readdirSync('./commands'); // Also returns undefined const folderName = commandFolders.find(folder => { fs.readdirSync(`./commands/${folder}`).includes(`${command.name}.js`); }) // Command errors out here delete require.cache[require.resolve(`../${folderName}/${command.name}.js`)]; // This part never runs. try { const newCommand = require(`../${folderName}/${command.name}.js`); message.client.commands.set(newCommand.name, newCommand); message.channel.send(`Command '${newCommand.name}' was reload successfully`) } catch (err) { console.error(err); message.channel.send(`There was an error while reloading a Command.`) } } }La razón por la que obtiene la carpeta como indefinida es porque no está devolviendo la carpeta que está tratando de encontrar en la función folderName . Está tratando de encontrar una carpeta con el comando e incluso si lo hace, no está haciendo nada con él, no lo está devolviendo ni iniciando sesión en la consola. Entonces solo tiene que devolverlo, la función folderName podría verse así:
const folderName = commandFolders.find(folder => fs.readdirSync(`commands/${folder}`).includes(`${command.name}.js`)) // If you want a one-liner // Or const folderName = commandFolders.find(folder => { return fs.readdirSync(`commands/${folder}`).includes(`${command.name}.js`) })Si el error persiste, lo más probable es que el error esté ahí porque la ruta no es correcta. Entonces, en ese caso, proporcione la estructura de carpetas de su bot