我使用Discord.js
创建了多个 Discord 机器人,并希望创建一个包含所有机器人都使用的代码的共享文件夹。
我为登录创建了 botInitializer.js
module.exports = (token, eventFiles) => {
const discord = require('./Packages/node_modules/discord.js');
const client = new discord.Client();
require('./eventInitializer.js')(eventFiles, client);
client.login(token);
}
在此模块中,我需要 eventInitializer.js ,该模块使用该模块注册应为当前机器人注册的所有事件
const fs = require('fs');
module.exports = (path, client) => {
try {
const eventFiles = fs.readdirSync(path);
eventFiles.forEach(file => {
const eventHandler = require(`${path}/${file}`);
const eventName = file.split(".")[0];
client.on(eventName, (...args) => eventHandler.run(client, ...args));
});
} catch (err) {
console.error(err);
}
}
创建机器人时,我通常会使用 bot.js 进行初始化。现在,我只需要访问此共享存储库
const config = require('./config.json');
require('../Shared/botInitializer.js')(config.token, './MyBotRepository/events');
在bot存储库中,我有一个 events 文件夹,其中包含 error.js
之类的文件// client.on('error', err => {
// console.error(err);
// });
// module.exports = (err) => {
// console.error(err);
// }
exports.run = (err) => {
console.error(err);
}
这是项目结构
使用node Poly/bot.js
运行漫游器时出现此错误
错误:找不到模块'./Poly/events/error.js'
在事件注册中,读取事件目录没有错误。该行出现错误
const eventHandler = require(`${path}/${file}`);
如何设置事件文件的路径?