Discord.js 使用 Express 添加角色 |无法读取未定义的属性“添加”

Posted

技术标签:

【中文标题】Discord.js 使用 Express 添加角色 |无法读取未定义的属性“添加”【英文标题】:Discord.js Add Role with Express | Cannot read property 'add' of undefined 【发布时间】:2021-04-07 19:00:33 【问题描述】:
app.get('/whitelist/*', function(req, res) 
     var fullUrl = req.originalUrl.replace('/whitelist/', '');
     const userjs = bot.users.cache.get(fullUrl);
     userjs.roles.add('791498271922585614');
);

我想使用上面的代码通过 Express 为用户分配一个角色,但它不起作用。我收到以下错误:

TypeError: Cannot read property 'add' of undefined

【问题讨论】:

【参考方案1】:

为了给用户一个角色,您需要获取他的GuildMember 对象。

为此,您必须获取您所指的公会的Guild 对象。 你可以简单地使用:

const guildObject = bot.guilds.cache.get('guild id here');

最后,您可以通过键入以下内容获得GuildMember 对象:

const memberObject = guildObject.member(userjs); // AKA the user object you already have

完成后,您可以使用以下方法简单地添加角色:

memberObject.roles.add('791498271922585614');

【讨论】:

以上是关于Discord.js 使用 Express 添加角色 |无法读取未定义的属性“添加”的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 客户端问题

Discord.js - 删除所有包含角色的用户的命令

Discord.Js 添加角色

使用 Discord.js 检测到添加的特定角色时删除另一个角色

在 express 节点 js 中重新渲染 EJS 模板

使用参数 Discord.JS 按名称将用户添加到角色