“fn 不是函数” discord.js
Posted
技术标签:
【中文标题】“fn 不是函数” discord.js【英文标题】:"fn is not a function" discord.js 【发布时间】:2020-08-23 18:56:08 【问题描述】:最近我在 Discord.js 中遇到了一些问题。我不是专家,如果我问一些愚蠢的问题,请原谅我。这是代码:
let rUser = message.guild.member(message.mentions.users.first() || message.guild.members.cache.get(args[0]));
if(!rUser) return message.channel.send('Couldn\'t find this user!');
let rReason = args.join(' ').slice(22);
if(!rReason) return message.channel.send('Insert a reason');
let reportEmbed = new Discord.MessageEmbed()
.setDescription('**User report**')
.addField('Reported user:', `$rUser.displayName <$rUser.id>`)
.addField(`Reason:`, `$rReason`)
.addField('Reported by:', message.author.username)
.setColor(0xf52c2c);
let rChannel = client.channels.cache.get(707956253040574525)
if(!rChannel) return message.channel.send('Not valid report channel');
rChannel.send(reportEmbed)
它给了我这个错误:TypeError: Cannot read property 'send' of undefined
我正在使用:node.js (6.14.4)、discord.js (12.2.0)、ms (2.1.2)
编辑
解决更新 node.js 和更改
let rChannel = message.guild.channels.cache.find(`name`, 'reports')
与
let rChannel = message.guild.channels.cache.find(channel => channel.name === 'reports')
“reports”只是机器人发送消息的频道名称
【问题讨论】:
请告诉我错误在哪一行,因为你有更多的 send() 函数。 同上。错误消息非常简单,您要在错误消息中指定的行上检查调用 send 的对象 是的,抱歉,问题出在最后一个字符串 rChannel.send(reportEmbed) @MattTheDragon,你试过 console.log(rChannel) 吗? @szeb 错误信息说 rChannel 没有定义,但是我在字符串let rChannel = client.channels.cache.get(707956253040574525)
中定义了它 我看了一些视频,也看了一些论坛或网站,每个人都使用这个代码,但和我一起它不工作
【参考方案1】:
您需要更新 Node.js。
Discord.js v12 需要 Node.js 12.0.0+。
要更新 Node.js,请在终端中运行以下命令:
npm install -g npm stable
npm install -g node
【讨论】:
我升级了node.js,还是报错,但是这次是“TypeError: fn.bind is not a function”,不知道怎么解决跨度> 你确定它真的升级了吗?你现在的节点版本是多少? 如果我在命令提示符下输入“node -v”,它会告诉我版本是 12.16.2 目前,您如何定义rChannel
?
let rChannel = message.guild.channels.cache.find(`name`, 'reports')
以上是关于“fn 不是函数” discord.js的主要内容,如果未能解决你的问题,请参考以下文章