我正在尝试使用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上进行了查找(我知道,我是一名真正的研究人员)。所以我希望有人可以帮我一下。我也找不到该错误的示例,所以我很迷路。
一如既往,感谢您抽出宝贵的时间阅读我的问题,如果我有任何错误的术语,请随时向我询问我的意思,或者您可以称我为愚蠢的人。 <3
答案 0 :(得分:0)
database.updateValue
不是函数,相反,您可能希望像这样使用database.add
:
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
不是函数,请使用fetch
或get
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
,否则将无法正常工作。
谢谢, 寒冷