quick.db 调平系统 - database.updateValue 不是函数

Posted

技术标签:

【中文标题】quick.db 调平系统 - database.updateValue 不是函数【英文标题】:quick.db leveling system - database.updateValue is not a function 【发布时间】:2020-03-13 23:08:19 【问题描述】:

我正在尝试使用 quick.db 制作一个带有不和谐机器人的调平系统。我一直在研究这个,但无法弄清楚,所以我想我会去这里。我目前的代码是: (app.js)

    //Message Leveling
    database.updateValue(message.author.id + message.guild.id, 1).then(i => 


        let messages;
        if (i.value = 25) messages = 25; // Level 1
        else if (i.value == 50) messages = 50; // Level 2
        else if (i.value == 75) messages = 75; //Level 3

        if (!isNaN(messages))  // If messages iss STILL empty, run this
            database.updateValue(`userLevel_$message.author.id + message.guild.id`, 1).then(o => 
                message.channel.send(`You sent $messages messages, LEVEL UP HOME BOY! level $o.value`)
            )
        
    )

(messages.js)

const db = require('quick.db');
var database = require('quick.db')

exports.run = (bot, message, args, func) => 

    database.fetchObject(message.author.id + message.guild.id).then(i => 
        database.fetchObject(`userLevel_$message.author.id + message.guild.id`).then(o => 
            message.channel.send('Messages sent: `' + (i.value + 1) + '`\nLevel: `' + o.value +'`');

        )
    )


现在,我遇到的错误发生在 app.js 中,但我认为 messages.js 中的代码可能会有所帮助。错误是:

[help]     database.updateValue(message.author.id + message.guild.id, 1).then(i => 
[help]              ^
[help]
[help] TypeError: database.updateValue is not a function

作为新手,我仍然不太了解 TypeError 是什么或如何修复它,尽管在 google 上查找它(我知道,我是一个真正的研究人员)。所以我希望有人能帮我一把。我也找不到这个错误的例子,所以我很迷茫。

与往常一样,感谢您花时间阅读我的问题,如果我有任何术语错误,请随时问我我的意思,或者您可以称我为愚蠢。

【问题讨论】:

quick.db 没有 updateValue 功能 看来你可能想看看 .set(key, data) here 【参考方案1】:

database.updateValue 不是一个函数,而是你想使用database.addlike:

    database.add(`level_$message.guild.id_$message.author.id`, 1).then(i => 


    let messages;
    if (i.value = 25) messages = 25; // Level 1
    else if (i.value == 50) messages = 50; // Level 2
    else if (i.value == 75) messages = 75; //Level 3

    if (!isNaN(messages))  // If messages iss STILL empty, run this
        database.add(`level_$message.guild.id_$message.author.id`, 1).then(o => 
            message.channel.send(`You sent $messages messages, LEVEL UP HOME BOY! level $o.value`)
        )
    
)

对于获取数据库,fetchObject 不是函数,请使用 fetchget

const db = require('quick.db');
var database = require('quick.db')

exports.run = (bot, message, args, func) => 

db.fetch(level_$message.guild.id_$message.author.id).then(i => 
    db.fetch(level_$message.guild.id_$message.author.id).then(o => 
        message.channel.send('Messages sent: `' + (i.value + 1) + '`\nLevel: `' + o.value +'`');

    )
)


如果您已将quick.db 定义为db,则不要调用database,而是调用db,否则它将不起作用。

谢谢, 发冷

【讨论】:

以上是关于quick.db 调平系统 - database.updateValue 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 quick.db 制作 discord.js 日志系统

Discord Bot Maker - MySQL 调平系统或 Discord.js - MySQL 调平系统

Quickdb add 不是 Quick.db 的函数错误

制作调平系统时出错 discord.py

如何使用 python 使用 discord.py 创建调平系统?

对用户“调平”系统的建议 [关闭]