Почему это продолжает говорить, что это не функция?

#javascript #discord.js

#javascript #discord.js

Вопрос:

 const commandBase = require("./commands/command-base.js");

    const readCommands = dir => {
        const files = fs.readdirSync(path.join(__dirname, dir))
        for (const file of files) {
            const option = require(path.join(__dirname, dir, file))
            commandBase(client, option);
            console.log("Passed.");
        }
    }
  

В основном, пытаюсь создать своего собственного бота discord на JavaScript, используя Discord.js , конечно. Но есть проблема. Он продолжает говорить, что CommandBase не является функцией, когда это так. Это даже часть command-base.js:

 module.export = function(client, commandOptions) {
    let {
        commands,
        expectedArgs = '',
        permissionError = "You do not have permission to use or run that command.",
        minArgs = 0,
        maxArgs = null,
        permissions = [],
        callback
    } = commandOptions;

    if (typeof commands === 'string') {
        commands = [commands];
    }
  

Я также попытался удалить функцию и просто использовать => , ничего не сработало. У кого-нибудь есть идеи, почему это происходит? Он просто выдает ошибку, в которой говорится, что это не функция.

Комментарии:

1. Какой тип commandBase и что console.log выводит?

2. Это опечатка. module.export должно быть module.exports

Ответ №1:

Вы пробовали это?

 // command-base.js
export default function () {...}

// other js
import commandBase from "./commands/command-base.js"
  

Комментарии:

1. Я не думаю, что предлагать ESM — хорошая идея в этом случае. Вероятно, используемый набор инструментов его не поддерживает.

2. Он говорит » Cannot use import statement outside a module «.

3. @KazumaKiryu пока придерживайтесь require. Просто убедитесь, что вы исправили орфографическую ошибку.