Проблема с node или моим кодом, разработка бота discord

#javascript #node.js #discord.js

#javascript #node.js #discord.js

Вопрос:

Я пытаюсь закодировать своего собственного бота Discord, и я получил ошибку, которую я не могу решить:

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

Error: Cannot find module './commands/${file}'
Require stack:
- C:UsersvatriDesktopDiscordBotmain.js
[90m    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)[39m
[90m    at Function.Module._load (internal/modules/cjs/loader.js:841:27)[39m
[90m    at Module.require (internal/modules/cjs/loader.js:1025:19)[39m
[90m    at require (internal/modules/cjs/helpers.js:72:18)[39m
    at Object.<anonymous> (C:UsersvatriDesktopDiscordBotmain.js:13:21)
[90m    at Module._compile (internal/modules/cjs/loader.js:1137:30)[39m
[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)[39m
[90m    at Module.load (internal/modules/cjs/loader.js:985:32)[39m
[90m    at Function.Module._load (internal/modules/cjs/loader.js:878:14)[39m
[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)[39m {
   code: [32m'MODULE_NOT_FOUND'[39m,
  requireStack: [ [32m'C:\Users\vatri\Desktop\DiscordBot\main.js'[39m ]
}
  

И вот мой код:

 const Discord = require('discord.js');

const client = new Discord.Client();

const prefix = '-';

const fs = require('fs');

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);
}

client.once('ready', () => {
    console.log('Playlist is on!');
});

client.on('message', message =>{
    if(!message.content.startsWith(prefix) || message.author.bot) return;
    
    const args = message.content.slice(prefix.length).split(/  /);
    const command = args.shift().toLowerCase();
    
    if(command === 'ping'){
        
        client.commands.get('ping').execute(message, args);
        
    } else if (command === 'hello'){
    
    }
});
  

Я перепробовал множество решений, но не нашел ничего, что могло бы ее решить, так что это действительно поможет мне

кстати, извините, если мой английский плохой, я не английский образ кода


Теперь я получил эту ошибку

 `client.commands.setTo(command.name, command);
                ^

TypeError: Cannot read property 'setTo' of undefined
    at Object.<anonymous> (C:UsersvatriDesktopDiscordBotmain.js:15:21)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules       
/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47`
  

Ответ №1:

Чтобы использовать литералы шаблона, вы должны заключить свою строку в обратные метки вместо кавычек.

Изменить

 const command = require('./commands/${file}');
  

Для

 const command = require(`./commands/${file}`);
                        ^                  ^
  

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

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