如何动态读取JSON文件?Discord机器人静音命令优化需求
解决方案
首先先修正你的JSON配置文件语法(原文件缺少键值对之间的逗号,会导致读取失败):
{ "997708726666547240": 456, "1009030663636267028": 654 }
在JavaScript中,访问动态属性(比如根据当前服务器ID获取对应配置)需要用方括号表示法,你之前的写法是错误的,正确实现如下:
// 读取配置文件 const config = require('./你的配置文件路径.json'); // 获取当前服务器ID const currentGuildId = message.guild.id; // 直接通过服务器ID从配置中取出对应的静音角色ID const muteRoleId = config[currentGuildId]; // 可选:获取实际的角色对象 const muteRole = message.guild.roles.cache.get(muteRoleId);
补充说明
- 点表示法(
config.property)只能用于固定的属性名,当属性名是变量或动态字符串时,必须使用方括号表示法(config[变量/字符串])。 - 建议增加容错判断,避免服务器未配置的情况:
if (!muteRoleId) { return message.reply('本服务器未配置静音角色,请联系管理员设置'); }
内容的提问来源于stack exchange,提问作者mercy
相关产品推荐
相关产品推荐

