使用message.attachments.first()。url“无法读取未定义的属性'url'”

时间:2019-07-01 13:34:11

标签: discord.js

我想获取Discord频道上发布的附件的URL。 已记录URL,但引发此错误:

  
url = message.attachments.first().url;
                                 ^

TypeError: Cannot read property 'url' of undefined
    at Client.<anonymous> (C:\...\discord\tutbot\index.js:34:38)

这是我当前的代码:

client.on("message", message => {
    if (message.channel.id != "595178696118108190") return;
    var content = message.content;

    var url;
    url = message.attachments.first().url;
    console.log("haha" + url);
});

1 个答案:

答案 0 :(得分:1)

如果邮件中没有附件,则message.attachments将为空的CollectionCollection.first()将返回未定义。当您尝试读取预期附件的url属性时,由于未定义错误而引发错误。

在阅读预期属性之前,请检查并确保有 个附件。

client.on("message", message => {
  if (message.channel.id !== "595178696118108190") return;

  if (message.attachments.size !== 0) { // Attachments are present.
    const firstAttachment = message.attachments.first();
    console.log(`haha ${firstAttachment.url}`);
  }
});