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

问题描述

我目前正在使用命令处理程序在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)
    
    },}

解决方法

我不确定这是否是最好的方法,但是我通过导出主文件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一起传递。