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
相关产品推荐
相关产品推荐

