javascript 执行模块时出错,导出=客户端;

flvlnr44  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(123)

我有一个commands文件夹,其中包含含有斜杠命令的文件,我必须将客户端示例从index.js导入到另一个文件中,但在执行此操作时:
module.exports = client;
它会执行整个index.js脚本!我不知道我做错了什么,我尝试在index.js之外的另一个文件中创建示例,然后在index中导入示例,但它不起作用。有人能帮帮我吗?

jjjwad0x

jjjwad0x1#

至少从我的理解来看,(假设您已经注册了命令并设置了客户端对象)您可以将client作为一个参数传递到command.execute()中(在代码片段的第10行):
在index.js中:

client.on(Events.InteractionCreate, async interaction => {
        if (!interaction.isChatInputCommand()) return;
        const command = interaction.client.commands.get(interaction.commandName);
        if (!command) {
                console.error(`No command matching ${interaction.commandName} was found.`);
                return;
        }
        try {
                console.log(`running command "${interaction.commandName}"!`);
                await command.execute(interaction,client);
        } catch (error) {
                console.error(error);
                await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
        }
});

然后在命令的模块中使用该参数:
在命令/您的命令.js中:

module.exports = {
//[...] other slash command setup bits and bobs

    async execute(interaction,client) {
        //your code here
    }
}

[discordjs指南片段的修改版本]
你可以问是否有任何需要详细说明或澄清的地方;希望这有帮助&干杯!

相关问题