You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js 获取图片附件URL返回undefined的问题求助

Discord机器人获取附件URL返回undefined问题解决

问题根因

discord.js 库中 message.attachments 返回的是附件集合(Collection),不是单个附件对象,所以直接对集合访问.url属性会返回undefined,你打印整个集合时能看到内部存储的附件条目对应url,只是没有取到具体的单个附件实例。

解决方案

方案1:消息仅存在1个附件的场景

直接取集合的第一个元素即可,额外加非空判断避免无附件时抛出异常:

if (message.content.includes("is dropping 3 cards!")) {
    const image = message.attachments.first()
    if (image) {
        console.log(image.url)
    }
}

方案2:消息存在多个附件需要遍历的场景

遍历整个集合输出所有附件的URL:

if (message.content.includes("is dropping 3 cards!")) {
    message.attachments.forEach(attachment => {
        console.log(attachment.url)
    })
}

注意事项

如果你使用的是discord.js v14及以上版本,需要确认你在机器人初始化时已经开启了MessageContent网关意图,否则可能出现附件、消息内容读取异常的问题。

内容的提问来源于stack exchange,提问作者Ahmed Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:36:03