You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Discord机器人仪表盘登录时出现TypeError报错求助

问题解决:TypeError: Discord.Permissions is not a constructor 导致登录无限刷新

问题根源

这个错误是因为你使用的Discord.js版本(v13及以上)中,Discord.Permissions 已不再作为构造函数存在,官方将其替换为 PermissionsBitField 类来处理权限逻辑。代码执行到报错行时抛出异常,导致登录后的用户数据处理流程中断,进而引发页面无限刷新。

修复方案

1. 确认Discord.js版本

检查项目根目录的package.json文件,确认discord.js的版本号。如果版本是^13.0.0或更高,按以下方式修改代码。

2. 修改权限处理代码

将报错的权限实例化代码替换为PermissionsBitField的静态方法调用:

原代码:

_guilds[index].permissions = new Discord.Permissions(_perms).toArray();

修改后代码:

// 使用PermissionsBitField.from()创建权限实例并转换为数组
_guilds[index].permissions = Discord.PermissionsBitField.from(_perms).toArray();

如果你的_perms是字符串数组格式的权限标识(比如["ManageGuild", "KickMembers"]),也可以直接使用:

_guilds[index].permissions = Discord.PermissionsBitField.resolve(_perms).toArray();

3. 验证修复效果

重新启动后端服务,再次尝试登录Discord账号。此时权限处理逻辑将正常执行,页面不会再因代码异常陷入无限刷新。

额外说明

Discord.js v13+对权限系统做了全面重构,使用位字段(bitfield)来更高效地管理权限。如果你的代码中还有其他使用Discord.Permissions的地方,都需要同步替换为PermissionsBitField相关方法。

内容的提问来源于stack exchange,提问作者Space Logic C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:31:12