使用discord.js访问API时出错,但仅在嵌入式系统上?

使用discord.js访问API时出错,但仅在嵌入式系统上?,discord,discord.js,bots,Discord,Discord.js,Bots,我正在制作一个Discord机器人,它从Hypixel API获取数据,Hypixel API是Minecraft服务器的API。我已经成功地编写了一些代码来获取数据,但这正是我遇到问题的地方。当我直接message.channel.send发送数据时,它工作正常。但是,如果我在嵌入中使用数据,它就不起作用 是否有效: fetch(`https://api.hypixel.net/player?key=API_KEY&name=${args[1]}`) .then(result=>result.

我正在制作一个Discord机器人,它从Hypixel API获取数据,Hypixel API是Minecraft服务器的API。我已经成功地编写了一些代码来获取数据,但这正是我遇到问题的地方。当我直接
message.channel.send
发送数据时,它工作正常。但是,如果我在嵌入中使用数据,它就不起作用

是否有效:

fetch(`https://api.hypixel.net/player?key=API_KEY&name=${args[1]}`)
.then(result=>result.json())
.然后({player})=>{
message.channel.send(player.stats.Bedwars.coins)
})
不起作用:

fetch(`https://api.hypixel.net/player?key=API_KEY&name=${args[1]}`)
.then(result=>result.json())
.然后({player})=>{
var bedwars_general_1=新的Discord.MessageEmbed()
addFields先生(
{name:'Coins',value:player.stats.Bedwars.Coins,inline:true},
)
message.channel.send(bedwars\u general\u 1)
})
对于上面的示例,它工作得非常好,但是对于下面的示例,我每次都会收到以下错误消息:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'Bedwars' of undefined
当我添加这一行时,它也给了我这个错误
var bedwarsCoins=player.stats.Bedwars.coins
,然后将变量添加到嵌入字段


我无法理解为什么它只在某些时候起作用?

该错误意味着
player
stats
属性未定义或为空

API可能找不到任何东西,在这种情况下,您应该尝试捕获缺少
stats
属性的值

.then(player => {
  if (!player.stats) return console.log('Unable to find stats');
});

问题是,玩家有一个
stats
属性,如果您使用API,就可以看到这个属性。
message.channel.send(player.stats.Bedwars.coins)
也可以工作,这一点也可以从中看出。只是因为某种原因,它在嵌入式系统中不起作用?请尝试将
.addFields({name:'Coins',value:player.stats.Bedwars.Coins,inline:true})更改为
.addField('Coins',player.stats.Bedwars.Coins,true)