【发布时间】:2021-02-23 01:26:28
【问题描述】:
所以我正在制作一个 Discord 机器人,并且我有一个从 r/memes 获取 meme 的 meme 命令,但有时它会给出 meme,有时代码会崩溃并在控制台中出现此错误:
TypeError: Cannot read property 'data' of undefined
我不太确定它会是什么,所以如果有人可以帮助我,那将有很大帮助。
这是我的!meme 命令代码:
const https = require('https');
const Discord = require('discord.js');
const url = 'https://www.reddit.com/r/memes/hot/.json'
module.exports = {
name: 'meme',
description: 'sends meme',
execute(message, args) {
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(subRedditName)
.setColor(4388341)
.setDescription(`[${title}](${link})\n\n${text}`)
.setURL(`https://reddit.com/${subRedditName}`)
message.channel.send(textembed)
}
var image = index.preview.images[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(subRedditName)
.setColor(4388341)
.setDescription(`[${title}](${link})\n\n${text}`)
.setURL(`https://reddit.com/${subRedditName}`)
message.channel.send(textembed)
}
console.log(image);
const imageembed = new Discord.MessageEmbed()
.setTitle(subRedditName)
.setImage(image)
.setColor(4388341)
.setDescription(`[${title}](${link})`)
.setURL(`https://reddit.com/${subRedditName}`)
message.channel.send(imageembed)
}).on('error', function (e) {
console.log('Got an error: ', e)
})
})
},
}
【问题讨论】:
-
response.data.children[Math.floor(Math.random() * 99) + 1].dataresponse.data 未定义或 children.data 未定义检查
标签: javascript node.js discord.js