首页 > 解决方案 > 如何制作事件处理程序

问题描述

我完成了我的命令处理程序,但我遇到了一个错误,想知道这个社区中是否有人可以帮助我解决这个问题?

我的代码:

const fs = require('fs');

module.exports = (client, Discord) => {
    const load_dir = (dir) => {
        const event_files = fs.readdirsync(`./events/${dirs}`).filter(file => 
    file.endsWith(`.js`));

    for (const file of event_files){
        const event = require(`./events/${dirs}/${file}`);
        const event_name = file.split('.')[0];

        client.on(event_name, event.bind(null, Discord, client));
    }
}
['client', 'guild'].forEach(e => load_dir(e));
}

我的错误:

ReferenceError: dirs is not defined
at load_dir (/home/runner/Buddy-Bot/handlers/event_handler.js:5:50)
at /home/runner/Buddy-Bot/handlers/event_handler.js:14:35
at Array.forEach (<anonymous>)
at module.exports (/home/runner/Buddy-Bot/handlers/event_handler.js:14:22)
at /home/runner/Buddy-Bot/index.js:11:34
at Array.forEach (<anonymous>)
at /home/runner/Buddy-Bot/index.js:10:38
at Script.runInContext (vm.js:130:18)
at Object.<anonymous> (/run_dir/interp.js:209:20)
at Module._compile (internal/modules/cjs/loader.js:999:30)

如果您能提供帮助,将不胜感激!

标签: javascriptnode.jsdiscorddiscord.js

解决方案


dirs当你没有这样的变量时,你正在使用。我认为你应该使用dir.


推荐阅读