discord.js机器人/server与/user命令无法填充信息求助
Discord.js 模板变量未解析问题解决
核心问题
你用了单引号或双引号包裹包含${xxx}的字符串,而非模板字符串要求的反引号(`)。只有反引号包裹的字符串才会解析其中的变量,单/双引号会把变量语法当作普通文本输出。
修复代码示例
错误写法(变量不解析)
// 双引号包裹,变量直接显示为文本 interaction.reply("服务器名称: ${interaction.guild.name},成员数: ${interaction.guild.memberCount}"); // 单引号同理 interaction.reply('用户标签: ${interaction.user.tag}');
正确写法(变量正常填充)
// 用反引号包裹整个字符串 interaction.reply(`服务器名称: ${interaction.guild.name},成员数: ${interaction.guild.memberCount}`); // /user命令示例 interaction.reply(`你的用户标签: ${interaction.user.tag},创建时间: ${interaction.user.createdAt}`);
额外排查点
- 确认
interaction.guild不为undefined:/server命令只能在服务器内触发,DM环境下interaction.guild是null,会导致报错或变量为空。 - 核对discord.js版本:v14+的交互逻辑和旧版本有差异,但模板字符串的解析规则是JS通用的,和库版本无关。
内容的提问来源于stack exchange,提问作者usselman
相关产品推荐
相关产品推荐

