Discord.js(节点)中的错误请求并且无法找出导致它的原因

Posted

技术标签:

【中文标题】Discord.js(节点)中的错误请求并且无法找出导致它的原因【英文标题】:Bad Request in Discord.js (Node) and cant find out whats causing it 【发布时间】:2017-10-12 19:12:30 【问题描述】:

我在 Discord.js (Node) 中编写一个机器人,我正在尝试发送一个包含服务器信息的嵌入,我已经获得了所有代码,但它一直导致错误请求,我已经尝试了我所知道的一切这是代码:

var FieldsData = [ name: "Channels", value: msg.guild.channels.size ,  name: "Emojis", value: msg.guild.emojis.size ,  name: "Members", value: msg.guild.members.size ,  name: "Owner", value: msg.guild.owner ,  name: "Roles", value: msg.guild.roles.size ,  name: "Region", value: msg.guild.region ,  name: "Id", value: msg.guild.id ,  name: "Icon", value: msg.guild.iconURL ,  name: "Created At", value: msg.guild.createdAt ];
msg.channel.send('', 
    embed: 
        color: 37119,
        title: "Server info for " + msg.guild.name,
        fields: FieldsData
    
);

我已经尝试了只包含一个字段的消息并且它有效, 我已经尝试过,每个字段都可以自己进行,并且可以正常工作 但是当我把它们放在一起时,它们提出了一个错误的请求, 我检查了每一行,每一个字符,我只是 对可能导致这种情况的原因感到困惑, 最大字段是 25,我没有那么多, 所有变量都是有效的,没有一个产生“空”或“未定义”, 我尝试了不同的代码布局设置, 我试过添加/删除部件、编辑部件、替换位 到处都是,但无济于事,我根本无法让它工作。

我已经尝试了 2 个小时来解决这个问题,我已经在网上搜索过,文档等

请注意:我对 javascript 的了解并不高,所以如果我犯了一个大错误,请不要感到惊讶。

“msg”是消息的对象,例如:

Bot.on('message', function (msg)  /*Stuff*/ );

我希望我已经对此进行了充分的解释,在发布此内容时我使用的是最新版本的 Discord.js,并且我没有使用任何其他扩展、包等

【问题讨论】:

尝试改用RichEmbed @Wright 我不想使用 RichEmbed,我想使用默认嵌入 你为什么不呢? 我有需要使用对象的脚本,它们是预制的 因为其他原因我想使用默认嵌入 【参考方案1】:

简短回答:

现在,不要在我说完后就忽略这篇文章(实际上阅读我的理由,整件事),但请使用Rich Embed


长答案:

首先,我强烈建议使用Rich Embeds,因为它更易于使用和编辑。无论如何,这里:

第一个建议来自您的消息事件。在 ES6 中,我们现在有类似 (arg1, arg2) => doSomething(); 的箭头函数,并且使用这个新特性,您的消息事件处理程序应该看起来更像这样:

client.on('message', msg => 

  //Do my thing with that msg object

);

现在回到正题。

    对象很奇怪 k?我相信:"Server info for " + msg.guild.name 是不允许的。我不知道为什么,但是当我尝试使用变量来显示我的机器人版本时,它也给了我一个错误。所以如果你想解决这个问题,你有两个选择:

    推荐:使用丰富的嵌入 不推荐:改用 `$myVar`(未测试)

    不要过于复杂。这是什么:('', 你可以做 msg.channel.send(embed:);

    您不只是为了变量而使用变量。使用 FieldsData 有什么意义?它只使用一次,你为什么不能这样做:

    msg.channel.send(
        embed: 
            color: 37119,
            title: "Server info for " + msg.guild.name,
            fields: [name: "Channels", value: msg.guild.channels.size,  name: "Emojis", value: msg.guild.emojis.size ,  name: "Members", value: msg.guild.members.size ,  name: "Owner", value: msg.guild.owner ,  name: "Roles", value: msg.guild.roles.size ,  name: "Region", value: msg.guild.region ,  name: "Id", value: msg.guild.id ,  name: "Icon", value: msg.guild.iconURL ,  name: "Created At", value: msg.guild.createdAt ]
        
    );
    

非常重要的提示:

现在,您没有给出不想使用Rich Embeds 的任何正当理由,因为富嵌入也是一个对象。 ;-;因此,只需使用丰富的嵌入。

我有需要使用对象的脚本,它们是预制的

我想知道如果嵌入未存储,您如何访问它......非常有趣。

【讨论】:

以上是关于Discord.js(节点)中的错误请求并且无法找出导致它的原因的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 无法执行

无法安装 discord.js / 找不到模块 discord.js

Discord.js:错误:更新到 v13 后“找不到模块 'node:events'”

错误:在 Heroku 上找不到模块 Discord.js

TypeError:无法使用 discord.js 读取属性“”错误

运行 Discord.JS 机器人时出错