web-dev-qa-db-fra.com

discord.js MessageEmbed fields.flat n'est pas une fonction

Je crée un bot Discord en utilisant JavaScript et discord.js. Là, je veux envoyer un RichEmbed/MessageEmbed (je ne sais pas comment il s'appelle) à un canal. Au lieu d'envoyer un Embed cependant, il a jeté une erreur dans discord.js.

TypeError: fields.flat is not a function
    at Function.normalizeFields (D:\discord-bot\node_modules\discord.js\src\structures\MessageEmbed.js:436:8)
    at MessageEmbed.addFields (D:\discord-bot\node_modules\discord.js\src\structures\MessageEmbed.js:252:42)
    at commands.forEach.command (D:\discord-bot\src\js\core\commands\commandManager.js:55:19)
    at Array.forEach (<anonymous>)
    at helloWorldEmbed (D:\discord-bot\src\js\core\commands\commandManager.js:54:18)
    at Object.call (D:\discord-bot\src\js\core\commands\commandManager.js:29:13)
    at Client.client.on (D:\discord-bot\src\js\core\bot.js:16:49)
    at Client.emit (events.js:182:13)
    at MessageCreateAction.handle (D:\discord-bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (D:\discord-bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)

J'ai déjà cherché une réponse, mais il semble que je sois la seule personne à avoir des problèmes.

Voici le code que j'ai utilisé:

const embed = new MessageEmbed()
    .setTitle('Hello World')
    .setDescription('This is a test.')
    .setColor('#3498db')
quotes.forEach(quote => {
    embed.addField(quote.name, quote.description, true)
})
message.channel.send('Hello world.', embed)
2
Darxoon

Comme indiqué dans les commentaires, la mise à jour de Node.js résout le problème. Discord.js v12 nécessite 12.0.0 ou une version plus récente en raison des méthodes (comme Array#flat() dans l'erreur) qu'il utilise pour son efficacité qui n'existent pas dans les anciennes versions.

1
slothiful