Pangsit
@Pangsit
Пытаюсь что-то кодить так сказать

(node:17032) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'database' of undefined?

Привет
Попытка сделать команды "ban" для бота,
но выдает ошибку
spoiler
"(node:17032) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'database' of undefined"

Вообще не понимаю в чем дело
Вот код ban
spoiler
module.exports = {
    name: "ban",
    usage: "ban <user>",
    async execute(message, args , bot) {
        const target = message.mentions.users.first() ? message.mentions.users.first().id : args[2];
        await bot.database.ban(target, "user", "Admin ban");
        bot.banCache.user.push(target);
        message.channel.send(`<@${target}> has been banned!`);
    }
};

Я новичок в этом деле,просьба помочь.Не нужно,да и не кто не будет предоставлять рабочий код.
Просьба объяснить самым простым языком(для тупых(меня)),каким только сможете.
То что database в этот период undefined мне тоже не нужно говорить,тут проблема в коде,а я не понимаю где.
Спасибо
  • Вопрос задан
  • 982 просмотра
Решения вопроса 1
61re
@61re
dev.
Это значит, что в коллбэке execute у аргумента bot нет свойства database.
К тому же коллбэк выполняется без обработчика исключений.

Для начала нужно выяснить, что содержит аргумент bot в консоли сервера.
module.exports = {
    name: "ban",
    usage: "ban <user>",
    async execute(message, args , bot) {
        console.log("ban", bot);
        const target = message.mentions.users.first() ? message.mentions.users.first().id : args[2];
        await bot.database.ban(target, "user", "Admin ban");
        bot.banCache.user.push(target);
        message.channel.send(`<@${target}> has been banned!`);
    }
};
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
Проблема в том,что вы передаете в функцию при вызове.У этого параметра нет свойства database.
Допустим вы передаете объект { x1=0, x2=1,x3=2}
Скрипт пробует найти здесь database,а следом применить метод ban().
Он не находит его и выдает ошибку о том,что такого свойства нет.

Покажите код того,что вы передаете - иначе дальше разбора выше мы не уйдем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы