节点获取失败,但一个也可以工作



我正在制作一个带有discord.jsnode.js的 Discord 机器人。我正在尝试发出两个命令,一个purr命令和一个woof命令。我正在使用node-fetch从网络上获取图像并将它们发布到 discord。这是我的代码:

else if (command === 'purr') {
const fetch = require('node-fetch');
fetch('https://aws.random.cat/meow').then(response => response.json());
const { file } = await fetch('https://aws.random.cat/meow').then(response => response.json());
const catEmbed = new Discord.MessageEmbed()
.setColor('#fbfb76')
.setTitle('Purr...')
.setImage(file)
.setFooter('Over 1000 free cat pics thanks to aws.random.cat :)');
message.channel.send(catEmbed);
}
else if (command === 'woof') {
const fetch = require('node-fetch');
fetch('https://dog.ceo/api/breeds/image/random').then(response => response.json());
const { file } = await fetch('https://dog.ceo/api/breeds/image/random').then(response => response.json());
message.channel.send(file);
}

purr命令有效。呜呜��嗯,不是真的。它输出此错误:

DiscordAPIError: Cannot send an empty message

指示它无法从dog.ceo/api/breeds/image/random中获取。由于它适用于purr命令,但不适用于woof命令,有人可以告诉我问题并建议如何解决它吗?谢谢。

那是因为https://aws.random.cat/meow返回一个file变量。但是,https://dog.ceo/api/breeds/image/random返回一个message变量。请改用这个:

const { message } = await fetch('https://dog.ceo/api/breeds/image/random').then(response => response.json());

相关内容

最新更新