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”

Discord.js TypeError:无法读取未定义的属性“get”

无法读取未定义的属性“成员”(discord.js)

无法读取未定义 discord.js 的属性“公会”

discord.js无法读取未定义的属性“执行”[关闭]

Discord.js 使用 Express 添加角色 |无法读取未定义的属性“添加”