首页 > 解决方案 > Discord.js 使用 Express 添加角色 | 无法读取未定义的属性“添加”

问题描述

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

标签: expressroutesdiscorddiscord.js

解决方案


为了给用户一个角色,您需要获取他的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');

推荐阅读