Así que actualmente tengo un bot que usa discord.js y cada vez que intento usar mi archivo deployment deploy-commands.js , aparece un error indefinido que dice Cannot read properties of undefined (reading 'name') (al leer command.data.name ). Esto me ha confundido porque aparentemente, al leer otros artículos similares a este, generalmente se debe a que alguien tiene un archivo que no exporta un objeto de datos en su carpeta de comandos; sin embargo, todos los míos lo hacen. ¿Qué puedo hacer para arreglar esto?
mi archivo deploy-commands.js :
const fs = require('node:fs'); const path = require('node:path'); const { REST } = require('@discordjs/rest'); const { Routes } = require('discord-api-types/v9'); const { clientId, token } = require('./config.json'); const rest = new REST({ version: '9' }).setToken(token); const commands = []; const commandsPath = path.join(__dirname, 'commands'); const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js')); for (const file of commandFiles) { const filePath = path.join(commandsPath, file); const command = require(filePath); commands.push(command.data.toJSON()); } const buttonCommands = []; const buttonCommandsPath = path.join(__dirname, 'buttonCommands'); const buttonCommandFiles = fs.readdirSync(buttonCommandsPath).filter(file => file.endsWith('.js')); for (const file of buttonCommandFiles) { const filePath = path.join(buttonCommandsPath, file); const command = require(filePath); buttonCommands.push(command); } module.exports = { buttonCommands }; (async () => { try { console.log('Started refreshing application (/) commands.'); await rest.put( Routes.applicationCommands(clientId), { body: commands }, ); console.log('Successfully reloaded application (/) commands.'); } catch (error) { console.error(error); } })();imagen de todos mis comandos para referencia: haga clic aquí
si es necesario, aquí también hay un enlace a un sourcebin que muestra el código para todos estos comandos y mi archivo index.js: https://srcb.in/mtqWFVLAeN
module.exports = { buttonCommands }; Parece que aquí solo está exportando buttonCommands de botón, pero no commands .