nodejs: (node:612) unhandledPromiseRejectionWarning: TypeErr



我有一个不和谐的机器人(实际上是两个,一个在python中(,我用我的树莓派4 4gb ram模型运行。我这样做是为了让它在启动时自动执行 js 和 python 脚本(通过 crontab(并将输出放在文件中。

当我尝试通过机器人发送嵌入时,我得到这个:

(node:612) UnhandledPromiseRejectionWarning: TypeError: fields.flat is not a function
at Function.normalizeFields (/HOMENAS/KitBot/node_modules/discord.js/src/structures/MessageEmbed.js:443:8)
at MessageEmbed.setup (/HOMENAS/KitBot/node_modules/discord.js/src/structures/MessageEmbed.js:77:91)
at new MessageEmbed (/HOMENAS/KitBot/node_modules/discord.js/src/structures/MessageEmbed.js:18:10)
at embedLikes.map.e (/HOMENAS/KitBot/node_modules/discord.js/src/structures/APIMessage.js:164:40)
at Array.map (<anonymous>)
at APIMessage.resolveData (/HOMENAS/KitBot/node_modules/discord.js/src/structures/APIMessage.js:164:31)
at TextChannel.send (/HOMENAS/KitBot/node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js:166:62)
at Client.client.on.message (/HOMENAS/KitBot/server.js:13:23)
at Client.emit (events.js:198:13)
at MessageCreateAction.handle (/HOMENAS/KitBot/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
(node:612) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:612) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:612) UnhandledPromiseRejectionWarning: TypeError: fields.flat is not a function
at Function.normalizeFields (/HOMENAS/KitBot/node_modules/discord.js/src/structures/MessageEmbed.js:443:8)
at MessageEmbed.setup (/HOMENAS/KitBot/node_modules/discord.js/src/structures/MessageEmbed.js:77:91)
at new MessageEmbed (/HOMENAS/KitBot/node_modules/discord.js/src/structures/MessageEmbed.js:18:10)
at embedLikes.map.e (/HOMENAS/KitBot/node_modules/discord.js/src/structures/APIMessage.js:164:40)
at Array.map (<anonymous>)
at APIMessage.resolveData (/HOMENAS/KitBot/node_modules/discord.js/src/structures/APIMessage.js:164:31)
at TextChannel.send (/HOMENAS/KitBot/node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js:166:62)
at Client.client.on.message (/HOMENAS/KitBot/server.js:13:23)
at Client.emit (events.js:198:13)
at MessageCreateAction.handle (/HOMENAS/KitBot/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
(node:612) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)

注意:/HOMENAS/KitBot 是机器人文件所在的目录(在我的 NAS SSD 中(。

我读到这可能与节点的版本有关,但我有 v14.4.0,但我仍然收到错误。

pi@raspberrypi:~ $ node -v
v14.4.0

你们知道问题可能是什么吗?

编辑:这是我的嵌入代码(这是一种审查机制(代码:

var forbidenWords = require('./profanewords.json');
var d = new Date();
var n = d.getHours();
client.on('message', message => {
for (var i = 0; i < forbidenWords.length; i++) {
if (message.content.toLowerCase().includes(forbidenWords[i]) && message.guild.id != 702111932848537622 ) {
message.delete()
const warnmsg = new Discord.MessageEmbed()
.setColor('#FF0000')
.setDescription(`Woah, **${message.author.username}**! This is a family friendly server. Don't use that language here!`)
message.channel.send(warnmsg);
break;
} 
}
});

pro亵渎词.json包含亵渎词列表

我知道禁止词拼写错误,我稍后会修复它

显然,这是 Discord 的一个问题.js当使用 LTS 上方的节点版本时:https://github.com/discordjs/discord.js/issues/3910

降级到Node的LTS版本(Node 12(应该可以解决这个问题.
为了轻松更改Node版本,我建议使用适用于Windows的NVM或NMV

最新更新