Как устранить ошибку Не удается прочитать свойство ‘channel’ неопределенного

#javascript #discord #discord.js

#javascript #Discord #discord.js

Вопрос:

Я получаю сообщение об ошибке Cannot read property 'channel' of undefined при попытке запустить (префиксный) мем. Приветствуется любой, кто может помочь.

 const randomPuppy = require('random-puppy');
const Discord = require('discord.js');
const Command = require('./command');


module.exports = class extends Command {
    name = 'meme';

    async execute(client, msg, ...args) { 
        const subReddits = ["dankmemes", "meme", "memes"]
        const random = subReddits[Math.floor(Math.random() * subReddits.length)]
  
        const img = await randomPuppy(random);
  
        const meme = new Discord.MessageEmbed()
        .setImage(img)
        .setTitle(`Your meme. From r/${random}`)
        .setURL(`https://reddit.com/r/${random}`)
        .setColor("RANDOM")
  
        await msg.channel.send(meme);
    }
}
 

У меня нет больше подробностей, чтобы сообщить их.

Комментарии:

1. msg не определено. Все просто.

2. Пожалуйста, убедитесь, что параметры правильно размещены в вашем обратном вызове.

3. У вас есть индексный файл, в котором вызывается команда? Похоже, это центральное место проблемы.

Ответ №1:

При доступе к свойству объекта синтаксис таков objA.propX , не так ли? В сообщении об ошибке говорится, что objA это undefined так, и вы в основном делаете undefined.propX , на что он жалуется «Не может прочитать».

В этом случае msg.channel .

Ответ №2:

Проверьте аргумент, вызванный msg в execute функции. Возможно, вы забыли передать его в функцию или это буквально undefined .

Комментарии:

1. Мой command-handler.js pastebin.com/qbycArbT Так неужели я упускаю это из виду?

2. Это так undefined . Извините, я не знаю весь ваш код, чтобы помочь проверить.