保存 JSON 文件以便稍后从中获取其他数据

Save JSON file to grab other data from it later(保存 JSON 文件以便稍后从中获取其他数据)
本文介绍了保存 JSON 文件以便稍后从中获取其他数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我希望能够用新数据保存我的 json 文件,然后调用该数据以便我可以再次保存新数据.现在它所做的就是,当我调用 JSON 文件数据的任何部分时,我上次手动保存它时保持不变.(我确实编辑了一些代码并更好地描述了我的问题)提前谢谢你!这是我的代码,没有错误日志:

I want to be able to save my json file with new data and then call upon that data so that I can save new data again. Right now all it is doing is it is, when I call upon any part of the JSON file's data, staying the same the last time I manually saved it. (I did edit some code and a better description of my problem) Thank you in advance! Here is my code there is no error log:

const Discord = require('discord.js');
const botconfig = require("./botconfig.json");
const fs = require("fs");
const bot = new Discord.Client();
    bot.on("message", async message => {
        let prefix = botconfig.prefix;
        let messageArray = message.content.split(" ");
        let cmd = messageArray[0];
        let args = messageArray.slice(1);
        console.log(message.member.id)
        var playerFile = require(`./playerData/${message.member.id}.json`);
        if (message.author.bot) return;
        if (message.channel.type === "dm") return;
        if (cmd.charAt(0) === prefix) {
            if(cmd === `${prefix}fc`){
                fs.exists(`./playerData/${message.member.id}.json`, function(exists) {
                    if(exists){
                    let ar = args[0];
                    let ninConsole = args[1];
                    let code = args[2];
                    if(ar === "add" || ar === "remove"){
                        if(code){
                            if(ar === "add"){
                                console.log("Add");
                                if(ninConsole === "switch"){
                                    console.log("Switch " + code); 
                                    let fileContent = `{"switch": "${code}","threeDS": "${playerFile.threeDS}"}`
                                    fs.writeFile(`./playerData/${message.member.id}.json`, fileContent, (err) => {
                                        if (err) {
                                            console.error(err);
                                            return;
                                        };
                                    });
                                }
                                if(ninConsole === "3ds"){
                                    let fileContent = `{"switch": "${playerFile.switch}","threeDS": "${code}"}`
                                    fs.writeFile(`./playerData/${message.member.id}.json`, fileContent, (err) => {
                                        if (err) {
                                            console.error(err);
                                            return;
                                        };
                                    });
                                }
                            }
                            if(ar === "remove"){
                                if(ninConsole === "switch"){
                                    let fileContent = `{"switch": "None","threeDS": "${playerFile.threeDS}"}`
                                    fs.writeFile(`./playerData/${message.member.id}.json`, fileContent, (err) => {
                                        if (err) {
                                            console.error(err);
                                            return;
                                        };
                                    });
                                }
                                if(ninConsole === "3ds"){
                                    let fileContent = `{"switch": "${playerFile.switch}","threeDS": "None"}`
                                    fs.writeFile(`./playerData/${message.member.id}.json`, fileContent, (err) => {
                                        if (err) {
                                            console.error(err);
                                            return;
                                        };
                                    });
                                }
                            }
                        }
                    }
                }else{
                    return;
                }
                });
            }

推荐答案

下面是使用 fs 将数据保存到 JSON 文件的示例:

Here is an example of saving data to a JSON file using fs:

JSON.parse(fs.readFileSync("./points.json", "utf8"));

这里有一个关于如何使用此代码为不和谐机器人制作积分系统的示例:https://anidiotsguide_old.gitbooks.io/discord-js-bot-guide/content/coding-guides/storing-data-in-a-json-file.html

There is an example on how to use this code to make a points system for a discord bot here: https://anidiotsguide_old.gitbooks.io/discord-js-bot-guide/content/coding-guides/storing-data-in-a-json-file.html

下面是这个例子的代码:

Here is the code for this example:

const Discord = require("discord.js");
const fs = require("fs");
const client = new Discord.Client();

let points = JSON.parse(fs.readFileSync("./points.json", "utf8"));
const prefix = "+";

client.on("message", message => {
  if (!message.content.startsWith(prefix)) return;
  if (message.author.bot) return;

  if (!points[message.author.id]) points[message.author.id] = {
    points: 0,
    level: 0
  };
  let userData = points[message.author.id];
  userData.points++;

  let curLevel = Math.floor(0.1 * Math.sqrt(userData.points));
  if (curLevel > userData.level) {
    // Level up!
    userData.level = curLevel;
    message.reply(`You"ve leveled up to level **${curLevel}**! Ain"t that dandy?`);
  }

  if (message.content.startsWith(prefix + "level")) {
    message.reply(`You are currently level ${userData.level}, with ${userData.points} points.`);
  }
  fs.writeFile("./points.json", JSON.stringify(points), (err) => {
    if (err) console.error(err)
  });

});

client.login("SuperSecretBotTokenHere");

我希望这会有所帮助!

这篇关于保存 JSON 文件以便稍后从中获取其他数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

discord.js v12: How do I await for messages in a DM channel?(discord.js v12:我如何等待 DM 频道中的消息?)
how to make my bot mention the person who gave that bot command(如何让我的机器人提及发出该机器人命令的人)
How to fix Must use import to load ES Module discord.js(如何修复必须使用导入来加载 ES 模块 discord.js)
How to list all members from a specific server?(如何列出来自特定服务器的所有成员?)
Discord bot: Fix ‘FFMPEG not found’(Discord bot:修复“找不到 FFMPEG)
Welcome message when joining discord Server using discord.js(使用 discord.js 加入 discord 服务器时的欢迎消息)