【发布时间】:2022-02-16 00:21:23
【问题描述】:
出于某种愚蠢的原因,我正在使用 Discord.JS v13。自从我得到这些奇怪的错误以来,我不知道存在。每次我运行该命令时,它都会给出一个错误并关闭机器人。我尝试添加try and catch,但我认为这些不再适用于v13。如果你们可以提供帮助,这是我的代码。
错误在第 32 行 btw
const Discord = require('discord.js')
const { MessageEmbed } = require('discord.js')
const https = require('https')
const url = 'https://www.reddit.com/r/catpics/hot/.json?limit=300'
module.exports = {
name: "cat",
description: "meow",
execute(message, args, client) {
message.reply("I am loading the image, if it does not come up try again later due to errors.")
https.get(url, (result) => {
var body = ''
result.on('data', (chunk) => {
body += chunk
})
result.on('end', () => {
var response = JSON.parse(body)
var index = response.data.children[Math.floor(Math.random() * 99) + 1].data
if (index.post_hint !== 'image') {
var text = index.selftext
const textembed = new Discord.MessageEmbed()
.setTitle("cute")
.setColor(9384170)
.setDescription(`[${title}](${link})\n\n${text}`)
.setURL(`https://reddit.com/${subRedditName}`)
message.channel.send({embeds: [textembed]})
}
var image = index.preview.image[0].source.url.replace('&', '&')
var title = index.title
var link = 'https://reddit.com' + index.permalink
var subRedditName = index.subreddit_name_prefixed
if (index.post_hint !== 'image') {
const textembed = new Discord.MessageEmbed()
.setTitle("cute")
.setColor(9384170)
.setDescription(`[${title}](${link})\n\n${text}`)
.setURL(`https://reddit.com/${subRedditName}`)
message.channel.send({embeds: [textembed]})
}
console.log(image);
const imageembed = new Discord.MessageEmbed()
.setTitle("cute")
.setImage(image)
.setColor(9384170)
.setDescription(`[${title}](${link})`)
.setURL(`https://reddit.com/${subRedditName}`)
message.channel.send({embeds: [imageembed]})
}).on('error', function (e) {
console.log('Got an error: ', e)
})
})
}
}
输出:
TypeError: Cannot read properties of undefined (reading '0')
【问题讨论】:
-
当然,您确定
index、index.preview和index.preview.image存在,对吧?在尝试访问index.preview.image[0]之前尝试记录它们,您可能会得到答案。 -
它不会让我记录它们,它只是发送错误然后一切都崩溃
-
你有办法记录吗?
-
如果我记录索引、index.preview 或 index.preview.image 控制台会出现错误并显示:TypeError: Cannot read properties of undefined (reading 'image')
-
那么它的意思就是它所说的:
There is no key named "preview" in the variable you are logging (index)。Trying to read "image" from a key that is undefined。甚至index也可能是未定义的。
标签: node.js discord discord.js