从不同的存储库设置PATH参数

时间:2018-10-09 08:13:38

标签: javascript node.js discord.js

我使用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);
}

这是项目结构

structure

使用node Poly/bot.js运行漫游器时出现此错误

  

错误:找不到模块'./Poly/events/error.js'

在事件注册中,读取事件目录没有错误。该行出现错误

const eventHandler = require(`${path}/${file}`);

如何设置事件文件的路径?

0 个答案:

没有答案