Node.js Discord Bot:TypeError:无法读取未定义的属性'发送'

问题描述:

我想让我的机器人(公共)可以在特定频道和特定服务器中发送消息。但是,我有一个错误......这是我的代码:Node.js Discord Bot:TypeError:无法读取未定义的属性'发送'

client.on('message', msg => { 
    if (msg.content.startsWith('+specifictest')) { 
    var channellog = msg.client.channels.get('352496750327496725'); 
    var guiiild = msg.client.guilds.get('343913599686934539').channellog; 
    guiiild.send({embed: new Discord.RichEmbed().setColor("#FFFFFF").setAuthor("Dessin").setDescription(`Demandé par <@${msg.author.id}>`)}) 
    } 
}) 

而且,我的错误:类型错误:无法读取属性未定义

这个错误的“发送”(在你的情况下)意味着你的变量guiiild尚未正确填充,因此在尝试使用未提供的属性时(此例中为send函数)出现意外故障。

的try/catch

你可以用它在try/catch block

client.on('message', msg => { 
    if (msg.content.startsWith('+specifictest')) { 
    try{ 
    var channellog = msg.client.channels.get('352496750327496725'); 
    var guiiild = msg.client.guilds.get('343913599686934539').channellog; 
    guiiild.send({embed: new Discord.RichEmbed().setColor("#FFFFFF").setAuthor("Dessin").setDescription(`Demandé par <@${msg.author.id}>`)}) 
    }catch(e){console.log("[ERROR]",e)} 
    } 
}) 

但它还是会给予你的错误,如果msg.client.guilds.get('343913599686934539').channellog犯规返回包含.send

+0

我已经尝试你的代码,我现在已经这个错误: [错误]类型错误:无法读取属性“送'undefined :c – SplatingWorld

+0

@SplatingWorld,你明白我的答案吗? (它不仅复制粘贴) – EMX

+0

是的,对不起......:c – SplatingWorld

你可以尝试这样的东西:

client.channels.get("ID").send("Your message") 

ID将是您想要发送消息的频道的ID。所以你的情况,请尝试:

client.on('message', msg => { 
    if (msg.content.startsWith('+specifictest')) { 
    client.channels.get("352496750327496725").send({embed: new Discord.RichEmbed().setColor("#FFFFFF").setAuthor("Dessin").setDescription(`Demandé par <@${msg.author.id}>`)}) 
    } 
})