有没有一种方法可以使用module.exports文件中索引中的变量?

时间:2020-08-23 21:55:28

标签: node.js discord discord.js node-modules

我目前正在使用命令处理程序在Discord机器人上工作,因此所有命令都位于单独的文件中。我无法弄清楚如何在命令文件中使用像Discordclient这样的索引中的变量。

这是命令的样子:

module.exports = {
    commands: ['say', 'say'],
    expectedArgs: 'Announcement...',
    minArgs: 1,
    permissions: ['ADMINISTRATOR'],
    requiredRoles: [],
    callback: async (message, args, text) => {

        const { member } = message
        const tag = `<@${member.id}>`
    
          const announce = new Discord.MessageEmbed()
          .setColor('RANDOM')
          .setTitle(`ANNOUNCMENT!`)
          .setFooter(config.footer)
          .setDescription(`${tag} __Announces:__\n **${args}**`)
          .setThumbnail(config.logo)
          
            message.delete()
            message.channel.send(announce)
    
    },
}

1 个答案:

答案 0 :(得分:0)

我不确定这是否是最好的方法,但是我通过导出主文件Client中的module.exports,您的情况下的索引并在其中导入索引来解决了此问题。命令文件。


// Your index file.
const Discord = require("discord.js");
const client = new Discord.Client();

client.login(process.env.DISCORD_AUTH_TOKEN);

module.exports.client = client;
// Command file.
const Discord = require("discord.js");
const Index = require("path to index");
module.exports = {
    commands: ['say', 'say'],
    expectedArgs: 'Announcement...',
    minArgs: 1,
    permissions: ['ADMINISTRATOR'],
    requiredRoles: [],
    callback: async (message, args, text) => {
        console.log(`Running as ${Index.client.user.tag}!`);
    },
}

另一种方法是在运行client函数时,将message变量与argstextcallback一起传递。