我正在尝试创建随机模因命令,从 r/reddit 发送模因,但出现错误
const { MessageEmbed } = require("discord.js");
const fetch = require("node-fetch");
module.exports = {
name: "meme",
description: "This command sends you random memes",
category: "fun",
example: ["x!meme"],
callback: async ({ message }) => {
try {
const url = await fetch("https://www.reddit.com/r/memes/random/.json");
const random = await url.json();
const embed = new MessageEmbed()
.setTitle(`Random Meme | ${random[0].data.children.data.title}`)
.setImage(random[0].data.children.data.url)
.setColor("#FF00A6");
.setFooter("Prefix x! | Random Meme Generator")
await message.channel.send({ embeds: [embed] });
} catch (err) {
console.log(err);
}
},
};
我不知道为什么,但我收到此错误
在旧版本(discord.js v12)上它工作正常
TypeError: Cannot read properties of undefined (reading 'title')
最佳答案
访问链接后,random[0].data.children
似乎是一个数组。从中获取第一个元素:
.setTitle(`Random Meme | ${random[0].data.children[0].data.title}`)
您需要对图像执行相同的操作:
.setImage(random[0].data.children[0].data.url)
关于javascript - 随机 Meme 命令 (discord.js v13),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70265679/