【问题标题】:DISCORD.JS TypeError: Cannot read property 'url' of undefinedDISCORD.JS TypeError:无法读取未定义的属性“url”
【发布时间】:2020-08-17 19:48:15
【问题描述】:

我想将所有进入 Channel X 的消息转发到 Channel Y,这很好。 但是我也想在有图片的时候把每张图片转发到Y频道。

收到此错误:UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'url' of undefined

这是我的代码,希望有人能帮助我

bot.on('message',async msg => {
    if(msg.channel.id != readingchannel)return
    let content = msg.content
    let pic =  msg.attachments
    let alertembed = new Discord.MessageEmbed()
    .setTitle("TEST")
    .setColor("RANDOM")
    .setDescription(msg.content)
    bot.channels.cache.get(writingchannel).send(alertembed)
    if(msg.attachments.length >= 1)return
    let alertembed2 = new Discord.MessageEmbed()
    .setTitle("TEST")
    .setColor("RANDOM")
    .setDescription(msg.content)
    .setImage(msg.attachments[0].url)
    bot.channels.cache.get(writingchannel).send(alertembed2)
});

【问题讨论】:

  • 错误表示msg.attachments[0]undefined

标签: javascript discord discord.js


【解决方案1】:

看起来当您检查附件时,如果找到附件,您会返回,我假设这不是预期的行为。如果您收到带有附件的消息,它将返回,但如果没有附件,则嵌入将与(不存在的)图像一起发送。看到问题了吗?

要解决这个问题,您所要做的就是改变 if(msg.attachments.length >= 1)return 类似于 if (msg.attachments.length < 1) return;

现在,当您发送不带任何附件的消息时,它会直接返回,而不会尝试访问不存在附件的 url 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-14
    • 2020-07-14
    • 2019-07-11
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多