@AlexeyMahov

Почему выдает ошибку?

Ошибка: (node:25288) UnhandledPromiseRejectionWarning: TypeError: db.get is not a function

const fs = require('fs');
const discord = require('discord.js');
//Requiring Packages
client = new discord.Client({ intents: ['Intents.FLAGS.GUILDS', 'Intents.FLAGS.GUILD_MESSAGES'] })
const guildID = '305129477627969547';
const userID = '261674810914897931';
const { Player, Discord } = require('discord-player');
const { MessageEmbed } = require('discord.js');
const message = require('./events/message');

client.on('error', (err) => {
    console.log(err.message)
});

client.commands = new discord.Collection();
client.aliases = new discord.Collection();
client.snipes = new discord.Collection();

["command", "event"].forEach(handler => {
    require(`./Handlers/${handler}`)(client);
});

client.on("message", message => { //Пришло сообщение.
    console.log(message.author.tag); //message.author.tag содержит в себе тег автора. message.content - сообщение которые отправилось
});

client.on("message", message => { //Пришло сообщение.
    console.log(message.content); //message.author.tag содержит в себе тег автора. message.content - сообщение которые отправилось
});
client.on("messagen", message => {
    console.log(`Меня пригласили на новый сервер: ${guild.name} (айди: ${guild.id}). Меня пригласил ${guild.memberCount}!`);
});

client.on('ready', () => {
    console.log(`Подключен к ${client.user.tag}!`);
});

const prefix = "!!"


client.on('message', async (message) => {

    let db = require('sqlite') // для примера использую простой в использовании пакет БД "quick.db"

let uid = message.author.id
let sid = message.guild.id
let xp = db.get(`xp_${sid}_${uid}`)
let lvl = db.get(`lvl_${sid}_${uid}`)


if (xp == null){
   db.set(`xp_${sid}_${uid}`, 0)
   xp = 0
}
if (lvl == null){
   db.set(`lvl_${sid}_${uid}`, 1)
   lvl = 1
}
db.add(`xp_${sid}_${uid}`, 1)
if (xp >= (lvl * 10)){ // прибавляем уровень если очков опыта больше/равно чем уровней в 10 раз
   db.add(`lvl_${sid}_${uid}`, 1) // добавляем 1 уровень
   db.set(`xp_${sid}_${uid}`, 0) // сбрасываем очки опыта
   message.channel.send(`${message.author}, ты поднял(-а) уровень!`)
}
})
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
прочтите внимательно код ошибки и свой код

Ошибка: (node:25288) UnhandledPromiseRejectionWarning: TypeError:  db.get is not a function

переводится как: .... db.get не является функцией

Смотрим дальше:
let db = require('sqlite') // для примера использую простой в использовании пакет БД "quick.db"

странно, но пишите про quick.db а подключаете sqlite
но возможно я не прав и так и должно быть (никогда не использовал ни то ни другое)?

Смотрю использование sqlite и вижу что инициализация модуля и создание коннекта к ДБ делаются совсем иначе.

Смотрю quick.db и вижу в примерах так нужные вам db.get() и db.set()

Вопрос решен!!!

Ну и напоследок. Либо вы очень устали и стали невнимательны, либо вам нужно срочно приучить себя вчитываться в текст ошибок, и пытаться понять о чем идет речь, а так же подтягивать знание JS, чтобы такие вот ошибки TypeError: db.get is not a function моментально направляли ваши мысли в нужное русло

const db = require('quick.db');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы