TypeError: Не удается прочитать свойства undefined (чтение «имя») discord.js

Я учусь discord.js и пытаюсь следовать это руководство на discordjs.guide, но возникает эта ошибка:

client.commands.set(command.data.name, command);
                                 ^

TypeError: Cannot read properties of undefined (reading 'name')

index.js код на ошибочной части:

const fs = require('node:fs');
const client = new Discord.Client({ intents: 32767 });
client.commands = new Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.ts'));

for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.data.name, command); // errored part
}

Если вам нужно больше кода, пожалуйста, сообщите его мне.

По крайней мере, один из ваших командных файлов не имеет свойства data. Попробуйте добавить console.info("registering command", file, command.data?.name) в свой цикл.

Phil 07.04.2022 06:35
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
1
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

удалите data в строке кода

client.commands.set(command.name, command); //this will set your command name

Редактировать: я не узнал .ts, но я уверен, что у него те же свойства, что и у .js

Пожалуйста, ограничьте выделение жирным шрифтом.

Arnav Thorat 07.04.2022 08:01

Вероятно, это не дает ответа на вопрос и должно быть только комментарием. Вы действительно понятия не имеете, что такое command, поэтому вместо этого вам следует обратиться за разъяснениями к OP. В любом случае, если OP следует инструкциям, которые они предоставили, command.data.name должно быть правильным.

Zsolt Meszaros 07.04.2022 09:16

Посмотрев на мой slash command handler, я увидел, что использую command.data.name, так что извините за отсутствие информации.

新Acesyyy 07.04.2022 10:21

Не беспокойтесь, вы всегда можете отредактировать или удалить неправильные ответы ;)

Zsolt Meszaros 07.04.2022 12:22

Я получил правильный ответ? Чего ждать

新Acesyyy 08.04.2022 02:09

Другие вопросы по теме