【问题标题】:Random Meme Command (discord.js v13)随机 Meme 命令 (discord.js v13)
【发布时间】:2022-01-12 20:29:31
【问题描述】:

我正在尝试创建从 r/reddit 发送 meme 的随机 meme 命令,但我有一个错误

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')

【问题讨论】:

  • 你读错了吗?
  • 某事[0].data.children[0].data.title
  • 如果您不熟悉或不擅长阅读 json,那么一个有用的工具是 jsonpathfinder.com

标签: javascript discord discord.js


【解决方案1】:

访问链接后,random[0].data.children 似乎是一个数组。从中获取第一个元素:

.setTitle(`Random Meme | ${random[0].data.children[0].data.title}`)

你需要对图片做同样的事情:

.setImage(random[0].data.children[0].data.url)

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2021-11-04
    • 2020-08-04
    • 2021-12-04
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多