首页 > 解决方案 > 使用 FS 和 Discord.JS 刷新数据库

问题描述

所以我有这个代码:

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();

}

但是有一个问题... 轮子转完后数据库没有刷新。因此,如果我执行命令检查我所拥有的资金,我仍然拥有启动机器人之前的资金。我想知道怎么刷钱!请尽快帮助我...

标签: node.jsdiscord.jsfs

解决方案


我替换了这个:

let userInfo = db[message.author.id];
  userInfo.money = userInfo.money + result

这样 :

db[message.author.id].money = db[message.author.id].money + result

现在它可以工作了。


推荐阅读