Javascript message.member.roles.includes不是一个函数

Javascript message.member.roles.includes不是一个函数,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我希望discord bot只允许该人员在数组中有一个角色时运行该命令 const validroles = ['owner', 'Co-Owner'] if(!message.member.roles.includes(validroles)) { return message.channel.send(`**${message.author}, You do not have permission to use this command**`) } 它告诉我错误Typ

我希望discord bot只允许该人员在数组中有一个角色时运行该命令

const validroles = ['owner', 'Co-Owner']

    if(!message.member.roles.includes(validroles)) {
      return message.channel.send(`**${message.author}, You do not have permission to use this command**`)
}
它告诉我错误
TypeError:message.member.roles.includes不是一个函数


如何修复此问题?

message.member.roles
为属于此成员的角色返回一个值,因此您需要使用
.cache
属性返回角色
.cache
返回没有
.includes()
方法的。我想您正在查找检查集合中是否存在元素的
.has()
属性:

if(!message.member.roles.cache.has(validrole.id)){
返回message.channel.send(`**${message.author},您没有使用此命令的权限**`)
}

在V12中应该是
message.member.roles.cache.includes
它仍然会给我一个错误这是相同的错误吗?是的,它是相同的错误出于某种原因,它只是发送消息“您没有使用此命令的权限”我认为
validroles
是一个角色ID,而不是运行该命令。请确保您正在传递角色ID。刚刚更新了我的答案。我在数组中有角色名称。我应该改用角色ID吗?nvm我找到了一个不同的解决方案