Javascript 无法读取未定义(distube npm)事件处理程序的Send属性

Javascript 无法读取未定义(distube npm)事件处理程序的Send属性,javascript,discord.js,audio-player,ytdl,distube,Javascript,Discord.js,Audio Player,Ytdl,Distube,因此,我尝试为音乐事件(如下)和事件加载创建一个事件处理程序。但是,一旦我开始一首歌,事件就会加载,即使消息可能已定义,也就是说send未定义 Distube事件处理程序如下: const Distube = require(`distube`) client.distube = new Distube(client, { searchSongs: false, emitNewSongOnly: true}); const music = fs.readdirSync

因此,我尝试为音乐事件(如下)和事件加载创建一个事件处理程序。但是,一旦我开始一首歌,事件就会加载,即使消息可能已定义,也就是说send未定义

Distube事件处理程序如下:

    const Distube = require(`distube`)

    client.distube = new Distube(client, { searchSongs: false, emitNewSongOnly: true});

    const music = fs.readdirSync(`./music`).filter(file => file.endsWith(`.js`));

    for (const file of music){
        console.log(`Loading Music Event: ${file}`);
        const event = require(`./music/${file}`);
        client.distube.on(file.split(".")[0], event.bind(null, client));
    }
下面是在./music/playSong下的事件文件(我将playSong作为一个测试事件,看看它是否有效)

完整错误如下:

(node:9000) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'send' of undefined
    at module.exports (E:\SoftwareGithubRep\MoosacBot\music\playSong.js:3:17)

如果您能提供任何帮助,我们将不胜感激。

看起来您只向模块提供了第一个参数,而且是客户端。您的意思是通过bind()传递所有4个参数,以便模块可以获得所有3个必需的参数吗?不是,因此每个事件都有自己的不同参数,即一个客户端。我认为null定义了其他变量,但我不太确定,因为我是新手。普通的事件处理程序只需要这个。参数也可以通过console.log识别。当我尝试message.channel.send()时,它们不是。很明显,channel不是message的属性,导致了这个错误。据我所知,我认为这不是正确的用法。
(node:9000) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'send' of undefined
    at module.exports (E:\SoftwareGithubRep\MoosacBot\music\playSong.js:3:17)