Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js I';我有一个错误';TypeError:无法读取属性';离开';未定义的';_Node.js_Discord.js - Fatal编程技术网

Node.js I';我有一个错误';TypeError:无法读取属性';离开';未定义的';

Node.js I';我有一个错误';TypeError:无法读取属性';离开';未定义的';,node.js,discord.js,Node.js,Discord.js,我有个问题。我已经为我的discord bot安装了ytdl core,但是,当bot必须自动离开语音室时,我遇到以下错误: console.log(queue); (function play(song) { console.log(song); if (song === undefined) return msg.channel.send('La file d\'attente est vide').then(() =>

我有个问题。我已经为我的discord bot安装了ytdl core,但是,当bot必须自动离开语音室时,我遇到以下错误:

console.log(queue);
        (function play(song) {
            console.log(song);
            if (song === undefined) return msg.channel.send('La file d\'attente est vide').then(() => {
                queue[msg.guild.id].playing = false;
                msg.member.voiceChannel.leave();
错误:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'leave' of undefined

老实说,我不认为这是一个定义问题。

msg.member.voiceChannel
未定义。这意味着用户不在语音频道中。在尝试使用它之前,请确保属性(
voiceChannel
)存在

const voiceChannel=msg.member.voiceChannel;
中频(语音频道){
voiceChannel.leave()
.catch(控制台错误);
}

未定义msg.member.voiceChannel。这意味着用户不在语音频道中。在尝试使用它之前,请确保属性(
voiceChannel
)存在

const voiceChannel=msg.member.voiceChannel;
中频(语音频道){
voiceChannel.leave()
.catch(控制台错误);
}

我在
msg.member.voiceChannel.leave()中看到一个方法调用
.leave()
,但不是读取的属性
。请离开
。您能否发布完整的错误消息,包括堆栈跟踪,以及更长的代码片段,包括错误源代码行?也许你有一个旧的
控制台。log
在某个地方导致了这个问题?@Cloud方法实际上是一个对象的属性。要调试它,问问你自己:
msg
来自哪里?
msg.member
来自哪里?最后,
msg.member.voiceChannel
来自哪里?最终,您会发现
msg.member.voiceChannel
未定义,浏览器无法访问
未定义的
的属性
leave
——就像它所说的那样。啊,谢谢@slothiful,抱歉,还在这里学习:)我原以为错误会说一些关于某个方法的内容,并认为它会说“无法读取属性”表示错误源于
.leave
其他地方(而不是
.leave()
)。我在
msg.member.voiceChannel.leave()中看到方法调用
.leave()
);
,但不是读取的属性
。请离开
。您是否可以发布完整的错误消息,包括堆栈跟踪,以及更长的代码片段(包括错误产生的行)?也许您有一个旧的
控制台。日志
,位于导致此问题的某处?@Cloud a方法实际上是obje的属性要调试它,请自问:
msg
来自何方?msg.member
来自何方?最后,
msg.member.voiceChannel
来自何方?最终,您将发现
msg.member.voiceChannel
未定义,浏览器无法访问
unde的
leave
属性罚款
——就像它说的那样。啊,谢谢@slothiful,抱歉,还在这里学习:)我本来以为错误会说一些关于方法的东西,但认为它说的“无法读取属性”意味着错误源于
。请将
放在其他地方(而不是
。leave()
)。