具有功能文件夹的命令处理程序无法将“ func”识别为功能

时间:2019-11-18 08:28:31

标签: javascript node.js discord discord.js

由于最近的失败,我决定尝试通过更正旧代码来学习node.js / discord.js。我不知道这是否是一个好方法,但这就是我要尝试的方法。不过最近,我遇到了一些设置命令处理程序的障碍。对于我的命令处理程序,我有:

// Calling Packages
const Discord = require('discord.js');
const bot = new Discord.Client();
const client = new Discord.Client();
const weather = require('weather-js');
const fs = require('fs');

const func = require("./functions.js")

// Listener Event One
bot.on('message', message => {

    // Variables
    let msg = message.content.toUpperCase();
    let sender = message.author;
    let cont = message.content.slice(prefix.length).trim().split(" ");
    let args = message.content.slice(prefix.length).trim().split(" ");
    let cmd = args.shift().toLowerCase();

    if (sender.bot) return;
    if (!message.content.startsWith(prefix)) return;

//Command Handler
try {

    let commandFile = require(`./commands/${cmd}.js`);
    commandFile.run(bot, message, args, func);

} catch(e) {

    console.log(e.message);

} finally {

    console.log(`${message.author.username} ran the command: ${cmd}`);

}

对于我的function.js文件,我有这个

module.exports = {

    ping: function(channel) {
        channel.send("Pong!");
    }

}

对于ping命令,我有

exports.run = (bot, message, args, func) => {
    func(message.channel);

}

func = require(./functions.js行正在读取function.js来捕获它们,然后

    let commandFile = require(`./commands/${cmd}.js`);
    commandFile.run(bot, message, args, func);

允许将它们导出,所以我认为。但是每当我运行命令“ cb!ping”并查看控制台时,它都说我已经阅读了命令,然后是func is not a function

这很令人困惑,由于我有func = require(./functions.js)并将其导出,所以我不太明白为什么。

我知道我的用语肯定不正确,但对不起,希望您能理解。与往常一样,感谢您抽出宝贵时间阅读我的问题。

0 个答案:

没有答案