Как вы можете читать команды из другого файла, используя Discord. js? - PullRequest
0 голосов
/ 20 апреля 2020

Итак. Я искал некоторое время, и, похоже, не смог найти ничего особенно подходящего. Пока у меня есть это:

const fs = require('fs');
const Discord = require('discord.js');
const { prefix, token } = require('./config.json');

const client = new Discord.Client();
client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
}

Затем во втором файле, расположенном в командах, который называется ping. js

module.exports = {
    name: 'ping',
    description: 'Ping!',
    cooldown: 5,
    execute(message) {
        message.channel.send('Pong.');
    },
};

Я получаю следующую ошибку:

internal/modules/cjs/loader.js:979
  throw err;
  ^

Error: Cannot find module './commands/hello.js'
Require stack:
- /Users/SurajAnand/Desktop/Discord/discordBot/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:976:15)
    at Function.Module._load (internal/modules/cjs/loader.js:859:27)
    at Module.require (internal/modules/cjs/loader.js:1036:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/Users/SurajAnand/Desktop/Discord/discordBot/index.js:11:18)
    at Module._compile (internal/modules/cjs/loader.js:1147:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
    at Module.load (internal/modules/cjs/loader.js:996:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/Users/SurajAnand/Desktop/Discord/discordBot/index.js' ]
}

gest

Я только что начал входить в JS для ради создания забавного маленького бота, чтобы связываться с некоторыми друзьями. Я попытался запустить этот кусок кода из разногласий. js руководство, и оно кажется невероятно крутым ... Просто я не могу заставить его работать, поэтому любая помощь будет очень признательна.

1 Ответ

2 голосов
/ 20 апреля 2020

Для меня это выглядит так, как будто относительный путь неверен.

Если вы позвоните ./commands/hello.js в index.js, он будет выглядеть в discordBot/commands/hello.js, которого, очевидно, не существует. Измените его с ./commands/hello.js на ../commands/hello.js, это должно работать.

Другой вариант - переместить папку commands в discordBot, что может быть немного чище, но вам решать

...