#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. спасибо за вашу помощь, это действительно помогло мне, теперь я получил новую ошибку, может быть, вы могли бы мне с этим помочь.