require()返回一个空对象

时间:2017-12-07 19:58:18

标签: javascript node.js node-modules

您好。

我已经有一段时间了,并且无法弄清楚为什么我的动态模块加载器无法正确加载文件。它只是为每个文件返回一个空对象。

function loadCommands() {
   require('fs').readdirSync(require('path').join(__dirname, 'commands')).forEach(file => {
       let commandName = file.substring(0, file.length - 3); // this removes the .js extension off of the file.
       commands[commandName] = require('./commands/' + file);
   });
}

此代码应加载./commands目录中的每个文件,并将其放在名为commands的对象中。

require()函数返回一个空对象。

示例命令文件包含以下内容:

const Command = require('../Command');

class Ban extends Command {
    constructor(options) {
        this.description = 'Bans a user.';
    }
    execute() {

    }
}

module.exports = Ban;

命令包含以下内容:

class Command {
    constructor() {
        this.description = 'unknown';
    }
    execute() {

    }
}

module.exports = Command;

如果我执行命令[" ban"],它将返回一个空对象而不是我期望的类。

我对这里发生的事情感到很困惑,因为根本没有循环依赖。

如果有人可以帮助我,我们将不胜感激。

感谢。

0 个答案:

没有答案