Discord.js 无法读取未定义的属性“获取”
Posted
技术标签:
【中文标题】Discord.js 无法读取未定义的属性“获取”【英文标题】:Discord.js Cannot read property 'fetch' of undefined 【发布时间】:2020-12-05 22:53:26 【问题描述】:几天前我刚开始使用 javascript 和 Discord.js 进行开发并收到此错误:
TypeError:无法读取未定义的属性“获取”
我正在尝试发出投票命令。这是代码(我删除了其他所有内容,只是希望它能够从中获取频道):
const Discord = require('discord.js');
const client = new Discord.Collection();
module.exports =
name: 'poll',
description: 'can make polls',
cooldown: 5,
usage: '[ask] [emoji1] [emoji 2]',
aliases: ['createpoll'],
execute(message, args)
client.channels.fetch('744582158324072468')
.then (channel => console.log(channel.name))
.catch(console.error);
// message.react(args[1]).then(() => message.react(args[0]));
,
;
我已经尝试将它放在有效的 Main.js 中:
client.on('message', message =>
if (message.content.startsWith('.poll'))
client.channels.fetch('744582158324072468')
.then (channel => console.log(channel.name))
.catch(console.error);
但我希望它输入正确的文件。这就是我上面的client.on('message'等
const fs = require('fs');
const Discord = require('discord.js');
const prefix, token, tprefix, welcomechannel, guildID = require('./config.json');
const client = new Discord.Client(
fetchAllMembers: true,
);
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles)
const command = require(`./commands/$file`);
client.commands.set(command.name, command);
const cooldowns = new Discord.Collection();
// update
client.once('ready', () =>
console.log(`$tprefixPaperbot got geupdated.`);
);
当然,我用谷歌搜索并阅读了文档,但这并没有帮助。
正如我所说,我是编程新手,这可能很容易解决,但我希望尽快解决这个问题,非常感谢。
【问题讨论】:
【参考方案1】:想通了。我只需要将消息添加到client.channels.fetch
现在它正在使用此代码:
const tprefix, pollchannel, modchannel = require('../config.json');
module.exports =
name: 'poll',
description: 'can make polls',
cooldown: 5,
usage: '[ask] [emoji1] [emoji 2]',
aliases: ['createpoll'],
execute(message)
message.client.channels.fetch('744582158324072468')
.then (channel => console.log(channel.name))
.catch(console.error);
,
;
谢谢@Jack Towns
【讨论】:
如果有人的回答解决了你的问题,请mark it as accepted【参考方案2】:您将客户端分配给代码顶部的新 Discord 集合。
您实际上是在做Collection.channels.fetch
而不是client.channels.fetch
。
您需要将客户端从您的主文件传递给您的命令。
【讨论】:
现在我得到了这个:HTTPError [DiscordjsError]: Request to use token, but token was unavailable to the client.
@centrix.js 这很可能意味着您的令牌无效,请尝试在开发面板上重新生成它。以上是关于Discord.js 无法读取未定义的属性“获取”的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js:TypeError:无法读取未定义的属性“删除”
TypeError:无法读取未定义的“获取”函数(discord.js)
discord.js无法读取未定义的属性'get'(client.channels.get())
使用 Node.js、Mongoose 和 Discord.js 的未定义错误 [无法读取未定义的属性]