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

Discord.js v12:从外部文件调用嵌入消息颜色遇阻求助

解决Discord.js v12从外部JSON读取Embed颜色失败的问题

核心问题排查与解决方案

1. 相对路径错误(最常见原因)

你当前使用的路径./config/embed.json是相对于命令文件所在目录的。如果命令文件放在子文件夹(比如commands/)里,而config/文件夹在项目根目录,那么路径需要调整为../config/embed.json(向上一级目录再进入config)。

修改后的路径代码:

const color = require('../config/embed.json'); // 修正相对路径

2. 验证JSON文件是否成功读取

可以添加调试输出,确认JSON内容是否被正确加载:

const color = require('./config/embed.json');
console.log(color); // 控制台会输出JSON对象,检查是否包含"blue": "#5865f2"

如果控制台输出undefined或非预期对象,说明路径错误(优先排查)或JSON文件存在语法问题(你的JSON语法是合法的)。

3. 确认颜色格式兼容性

Discord.js v12的MessageEmbed.setColor()完全支持十六进制字符串格式(如#5865f2),你的颜色值本身是合法的。只要路径正确且JSON读取正常,该颜色值就能正常应用。

修正后的完整命令文件示例

假设命令文件位于commands/文件夹,config/在项目根目录:

const Discord = require('discord.js')
const color = require('../config/embed.json');

module.exports = {
    name: "developer",
    cooldown: 10,
    aliases: "dev",
    
    run: async(client, message, args) => {
        const dev = new Discord.MessageEmbed()
            .setColor(color.blue)
            .setTitle('Example Dev name')
            .setAuthor(`${message.author.username}`, `${message.author.displayAvatarURL()}`)
            .setDescription('Hello I am Dev lmao')
            .setTimestamp()
            .setFooter('Dev: Developer');

        message.channel.send(dev);
    }
};

内容的提问来源于stack exchange,提问作者user19635351

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:36:22