Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js(节点)中的请求不正确,无法找到导致该请求的原因_Javascript_Node.js_Discord - Fatal编程技术网

Javascript Discord.js(节点)中的请求不正确,无法找到导致该请求的原因

Javascript Discord.js(节点)中的请求不正确,无法找到导致该请求的原因,javascript,node.js,discord,Javascript,Node.js,Discord,我在Discord.js(Node)中编写了一个bot,我正在尝试发送一个带有服务器信息的嵌入,我已经得到了所有的代码,但它一直导致一个错误的请求,我已经尝试了我知道的一切,代码如下: var FieldsData = [{ name: "Channels", value: msg.guild.channels.size }, { name: "Emojis", value: msg.guild.emojis.size }, { name: "Members", value: msg.guild

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

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,我没有那么多, 所有变量都有效,没有一个生成“Null”或“Undefined”, 我尝试过不同的代码布局设置, 我尝试过添加/删除部件、编辑部件、替换位 到处都是,但毫无用处,我根本无法让它工作

我花了两个小时试图弄明白这一点,我在网上搜索过,文档等等

请注意:我的javascript没有那么先进,所以如果我犯了一个大错误,请不要感到惊讶

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

Bot.on('message', function (msg) { /*Stuff*/ });
我希望我已经充分解释了这一点,我在发布本文时使用的是Discord.js的最新版本,并且我没有使用任何其他扩展、软件包等

简短回答:

现在,不要在我说了这些之后就忽略了这篇文章(实际上阅读了我的理由,全部内容),但请使用
Rich-Embed


长答覆:

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

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

client.on('message', msg => {

  //Do my thing with that msg object

});
现在回到正题

  • 物体很奇怪,k?我认为:
    “+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
    的有效理由,因为Rich-embed也是一个对象;-;所以只需使用Rich-embed即可


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


    我想知道如果你的嵌入没有存储,你如何访问它……非常有趣。

    尝试使用
    RichEmbed
    instead@Wright我不想使用RichEmbed,我想使用默认的Embed为什么不呢?我有需要使用对象的脚本,它们是预先制作的,我想使用默认的Embed还有其他原因