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

Discord.js V14随机猫图命令报错及数据异常求助

问题修复方案

第一个错误原因及解决

你遇到的TypeError: Cannot read properties of undefined (reading 'setTitle')是因为链式调用被打断:

const embed = new EmbedBuilder()
console.log(res.data) // 该行返回undefined,导致后续`.setTitle()`在undefined上执行
.setTitle("Random Cat Image")

console.log()的返回值是undefined,相当于在undefined上调用.setTitle(),因此报错。解决方法是将console.log移至链式调用之外,避免打断方法链。

第二个错误原因及解决

接口返回的数据是数组格式(外层包裹[]),res.data是包含单个对象的数组,而非直接的对象。直接访问res.data.url自然会得到undefined,正确做法是取数组第一个元素后再访问url:res.data[0].url。

修复后的完整代码

axios.get("https://api.thecatapi.com/v1/images/search")
  .then((res) => {
    // 获取数组中的第一个猫图对象
    const catData = res.data[0];
    // 正确链式调用创建Embed
    const embed = new EmbedBuilder()
      .setTitle("Random Cat Image")
      .setImage(catData.url);
    
    console.log(catData); // 移至此处,不打断链式调用
    message.reply({ embeds: [embed] });
  })
  .catch((err) => {
    const error = String(err);
    message.reply(`An error occurred, sorry about that. Try again in a moment. Error: ${error}. :face_with_monocle: `);
  });

额外建议:在使用接口返回数据前增加空值判断,避免因接口返回异常导致报错:

if (!res.data || res.data.length === 0) {
  return message.reply("Failed to get cat image, try again later.");
}

内容的提问来源于stack exchange,提问作者Tyler Mazur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:35:21