discord.js无法读取未定义的属性'get'(client.channels.get())
Posted
技术标签:
【中文标题】discord.js无法读取未定义的属性\'get\'(client.channels.get())【英文标题】:discord.js Cannot read property 'get' of undefined (client.channels.get())discord.js无法读取未定义的属性'get'(client.channels.get()) 【发布时间】:2020-04-18 11:57:43 【问题描述】:我一直在尝试通过 ID 获取频道对象并将其放入数据库中的“频道”键下。 但是它告诉我 client.channels 是未定义的!
module.exports =
name: 'channel',
description: 'Pong!',
execute(client)
const db = require('../databases.js');
const channel = client.channels.get('some channnel id');
db.config.set('channel', channel);
,
;
index.js的相关部分:
const
fs = require('fs'), //loads native filesystem module
Discord = require('discord.js'), //loads discord.js
Enmap = require('enmap'), //loads enmap
client = new Discord.Client(), //creates new client
db = require('./databases.js'); //initializes all databases
require('colors'); //loads colors package
...命令处理...
if (!client.commands.has(commandName)) return;
const command = client.commands.get(commandName);
try
command.execute(message, args, client, member, Enmap);
catch (error)
console.log(('[main] ' + error).red);
message.channel.send('This command has run into an error.');
【问题讨论】:
你从哪里得到client
?向我们展示这部分代码。
编辑添加。
你要导出的函数是哪一部分调用execute(client)
?
它是在处理集合中的所有命令之后的 try...catch 语句。
【参考方案1】:
所以,如果我根据你的 cmets 理解正确的话。
command.execute(message, args, client, member, Enmap);
正在调用这个函数:
execute(client)
const db = require('../databases.js');
const channel = client.channels.get('some channnel id');
db.config.set('channel', channel);
,
这个execute
函数需要一个参数作为client
但在上面你传递了5 个参数,client
是第三个。
有些东西没有加起来。您应该将 execute
函数更改为接受 5 个参数或仅将 client
传递给它。
如果我误解了,我很抱歉。让我知道,我可以相应地编辑我的答案。
【讨论】:
谢谢!我不知道execute
是这样工作的。我做了一两次调整,现在可以了。
太好了,很高兴我能帮上忙 :)以上是关于discord.js无法读取未定义的属性'get'(client.channels.get())的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js:TypeError:无法读取未定义的属性“get”