当前位置: 首页 > 知识库问答 >
问题:

不和谐的代码。js bot响应错误“TypeError:”

冷吉星
2023-03-14

我正在测试使用Discord为Discord机器人发送嵌入消息。js基本上是一个节点。用于与Discord的API交互的js模块。这是我用于bot发送嵌入消息的代码:

const Discord = require('discord.js');
const embed = new Discord.RichEmbed()
    .setTitle("This is your title, it can hold 256 characters")
    .setAuthor("Author Name", "https://i.imgur.com/lm8s41J.png")
    .setColor(0x00AE86)
    .setDescription("This is the main body of text, it can hold 2048 characters.")
    .setFooter("This is the footer text, it can hold 2048 characters", "http://i.imgur.com/w1vhFSR.png")
    .setImage("http://i.imgur.com/yVpymuV.png")
    .setThumbnail("http://i.imgur.com/p2qNFag.png")
    .setTimestamp()
    .setURL("https://discord.js.org/#/docs/main/indev/class/RichEmbed")
    .addField("This is a field title, it can hold 256 characters",
        "This is a field value, it can hold 1024 characters.")
    .addField("Inline Field", "They can also be inline.", true)
    .addBlankField(true)
    .addField("Inline Field 3", "You can have a maximum of 25 fields.", true);

  message.channel.send({embed});

运行代码时,在Visual Studio代码IDE中出现以下错误:

TypeError:(中间值). setTitle(...). setWriter(...). setColor(...). setdescription ption(...). setFolter(...). setImage(...). setThumbail(...). setTimestamp(...). setURL(...). addField(...). addBlankField不是函数

共有3个答案

周翼
2023-03-14

如果您想以另一种方式添加空白字段,因为discord.jsv12不支持. addBlankField()。你可以这样写:

.addField("** **", "** **")

这将添加一个标题和描述几乎为空的字段(在发送嵌入后,它们都包含一个空格)

华锦
2023-03-14

试试这个:

    const Discord = require('discord.js');
    const client = new Discord.Client();
    client.login('Your bot\'s token here');
    client.on('ready', () => console.log('I\'m ready !');
    client.on('message', message => {
        const embed = new Discord.MessageEmbed()
            .setTitle("This is your title, it can hold 256 characters")
            .setAuthor("Author Name", "https://i.imgur.com/lm8s41J.png")
            .setColor('WHITE')
            .setDescription("This is the main body of text, it can hold 2048 characters.")
            .setFooter("This is the footer text, it can hold 2048 characters", "http://i.imgur.com/w1vhFSR.png")
            .setImage("http://i.imgur.com/yVpymuV.png")
            .setThumbnail("http://i.imgur.com/p2qNFag.png")
            .setTimestamp()
            .setURL("https://discord.js.org/#/docs/main/indev/class/RichEmbed")
            .addField("This is a field title, it can hold 256 characters",
        "This is a field value, it can hold 1024 characters.")
            .addField("Inline Field", "They can also be inline.", true)
            .addField("Inline Field 3", "You can have a maximum of 25 fields.", true);

  message.channel.send(embed);

如果这不起作用,我建议点击这里查看官方文件

萧飞
2023-03-14

MessageEmbed类中没有addBlankField()函数当您查看文档时,请检查您的不一致。js版本。

从v12.0.0开始,他们将RichEmbed更改为MessageEmbed

 类似资料:
  • 授权服务器使用HTTP 400或401状态代码进行响应。 如果在授权期间发生错误,则会发生两种情况。 在第一种情况下,不识别或识别客户端。 在第二种情况下,尽管客户端被准确识别,但其他东西仍然失败。 在这种情况下,错误响应将被发送回客户端,如下所示 - error_description - 它是由Content-Language标头指定的语言中的可选人类可读错误描述,适用于开发人员而非最终用户。

  • 我正在编写下面的代码,但这只是在响应代码为200时捕获响应体。对于所有其他情况,它都失败了。 图片-邮递员发出呼叫和响应,其中响应代码不等于200 例如,当响应代码409时,代码抛出错误 线程“main”java.io.IOException中的异常:服务器返回HTTP响应代码:409用于URL:http://fetch.product/v1/products/PD16798270/validat

  • 我正在使用JMeter执行负载测试,用户应该执行启动-登录- clk仪表板页面- clk登录页面(登录后出现的页面,即主页),其中clk仪表板和clk登录页面重复操作5次。 直到30个用户,当我增加用户负载时,我没有收到任何错误,我开始收到错误,因为 响应代码:非HTTP响应代码:org.apache.HTTP.conn.HttpHostConnectException响应消息:非HTTP回应消息

  • 当我尝试使用pause、stop和resume命令时,它会给出keyrerror。触发该错误的全部代码都在上面。错误是这样的: 忽略命令stop:Traceback(最近一次调用last)中的异常:文件“C:\Users\emirs\PycharmProjects\discordmasterbot\venv\lib\site packages\discord\ext\commands\core.p

  • 我正在我的. Net Web应用程序上运行负载测试,使用Jeter。应用程序过程:启动-登录-开始测试-回答问题 直到500个用户或有时750个用户,测试才成功运行。但是当我增加负载时,我得到一个错误: 11.111.111.111是我的服务器IP地址。 我已经将jmeter.batch文件堆内存增加到HEAP=-Xms1g-Xmx4g-XX: MaxMetaspaceSize=256m Apac