使用 FS 和 Discord.JS 刷新数据库
Posted
技术标签:
【中文标题】使用 FS 和 Discord.JS 刷新数据库【英文标题】:Database Refreshing Using FS and Discord.JS 【发布时间】:2020-08-16 09:04:23 【问题描述】:所以我有这个代码:
const Discord = require('discord.js');
const fs = require('fs');
const client = new Discord.Client();
let db = JSON.parse(fs.readFileSync("./database.json", "utf8"));
module.exports.run = async (bot, message, args) =>
const dawaeEmbed = new Discord.MessageEmbed()
.setColor(0xD4AF37)
.setTitle(message.author.username + " fait tourner la roue de la fortune \:\o")
.setImage('https://images-ext-2.discordapp.net/external/HsKDQ0E_aFmmt_y1C0MGjAtkkHEtJqvSgVVC6BEpcBI/https/cdn.zerotwo.dev/INTERNAL/WOF.gif')
.setFooter('J\'adore les commandes de Ikari :D');
var result = Math.floor(Math.random() * (983 - 42 + 1)) + 42;
const dawaeEmbed2 = new Discord.MessageEmbed()
.setColor(0xD4AF37)
.setTitle(message.author.username + ` a gagné $result 〷 grâce à la roue ! ✨`)
.setImage('https://images-ext-1.discordapp.net/external/0MadJ_5x3-sYSU-8p88EDiks0ieAendhBg5sMSh_RCI/https/cdn.zerotwo.dev/INTERNAL/MONEY.gif')
.setFooter('J\'adore les commandes de Ikari :D');
spining = await message.channel.send(dawaeEmbed)
setTimeout(() =>
// Edit msg 20 seconds later
spining.edit(dawaeEmbed2);
, 5000);
if (!db[message.author.id]) db[message.author.id] =
money: 0
;
let userInfo = db[message.author.id];
userInfo.money = userInfo.money + result
fs.writeFile("./database.json", JSON.stringify(db), (x) =>
if (x) console.error(x)
);
message.delete();
但是有一个问题... ***完成旋转后数据库没有刷新。因此,如果我执行命令检查我所拥有的资金,我仍然拥有启动机器人之前的资金。我想知道怎么刷钱!请尽快帮助我...
【问题讨论】:
【参考方案1】:我替换了这个:
let userInfo = db[message.author.id];
userInfo.money = userInfo.money + result
通过这个:
db[message.author.id].money = db[message.author.id].money + result
现在它可以工作了。
【讨论】:
以上是关于使用 FS 和 Discord.JS 刷新数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 discord.js 中使用 FS 将richEmbed 保存到文件中?
FS 事件 Message.js 在 Discord.js v12 中不起作用
Discord.js / Node.js FS - 在同一会话中重新加载文件?