Я писал бота для Discord на Node.JS (в VSCode) и столкнулся с ошибкой:
TypeError: Cannot read property 'filter' of undefined
at fs.readdir (C:\Users\Asus\Desktop\GGBOT\ggame.js:11:25)
at FSReqWrap.args [as oncomplete] (fs.js:140:20)
PS C:\Users\Asus\Desktop\GGBOT> node ggame.js
{ [Error: ENOTDIR: not a directory, scandir 'C:\Users\Asus\Desktop\GGBOT\cmds\ping.js']
errno: -4052,
code: 'ENOTDIR',
syscall: 'scandir',
path: 'C:\\Users\\Asus\\Desktop\\GGBOT\\cmds\\ping.js' }
C:\Users\Asus\Desktop\GGBOT\ggame.js:11
let jsfiles = f.filter(f => f.split(".").pop() === "js");
Код:
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.commands = new Discord.Collection();
const fs = require('fs');
let config = require('./botconfig.json');
let token = config.token;
let prefix = config.prefix;
fs.readdir("./cmds/ping.js", (err, files) => {
if (err) console.log(err)
let jsfiles = files.filter(f => f.split(".").pop() === "js");
if (jsfiles.length <= 0) console.log("EEERRR (нету комманд)!!!");
console.log(`Тебе доступно: ${jsfiles.length} строк комманд`)
jsfiles.forEach((f, i) => {
let props = require(`./cmds/${f}`);
console.log(`${i + 1}.${f} Загружен!`);
bot.commands.set(props.help.name,props);
})
})
bot.on('ready', () => {
console.log(`Включение! 1.. 2.. 3.. Бот ${bot.user.username} Включиился`);
bot.generateInvite(["ADMINISTRATOR"]).then(link => {
console.log(link)
})
});
bot.on('message', msg => {
if (message.author.bot) return;
if (message.channel.type == "dm") return;
let user = message.author.username;
let userid = message.author.id;
let messageArray = message.content.split(" ");
let command = messageArray[0].toLoserCase();
let args = messageArray.slice(1);
if (message.content.startWith(prefix)) return;
let cmd = bot.commands.get(command.slice(prefix.length));
if (cmd) cmd.run(bot,message,args);
})
bot.login(token);
начиная с const Discord сам код
Ты пытаешься получить листинг папки, обращаясь к файлу ping.js
, и он тебе пишет, что это не папка.
В fs.readdir()
поменяй путь "./cmds/ping.js"
на "./cmds"
:
fs.readdir("./cmds", (err, files) => { /* ... */ });
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую Swiper-слайдерВ слайдере есть 4 видимых слайда
Нужно удалять теги html при вставке текста в форму из буфера обмена
Изначальная задача у меня это менять по кругу цветные квадратыДумаю это сделать меняя свойство transform: rotate у большого квадрата
У меня есть массив, и всё никак не получается вставить тире между годами, чтобы было понятно что выбрал не только 1920,2020 года а выбрать именно...