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

2024-04-25

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

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 文件的示例:

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 https://anidiotsguide_old.gitbooks.io/discord-js-bot-guide/content/coding-guides/storing-data-in-a-json-file.html

这是此示例的代码:

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

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Twitter Bootstrap 的 Tab 插件中的“data-api”是什么意思

    有一段代码如 TAB DATA API function body on click tab data api data toggle tab data toggle pill function e e preventDefault thi
  • 如何将json从android发送到php?

    为了将 json 从 android 发布到 php 我使用了 Volley 库StringRequest目的 StringRequest sr new StringRequest Request Method POST url new R
  • yup - 逗号后允许两位数字,小数的最小值和最大值

    const validationSchema yup object amount yup number positive min 5 minimum 5 max 10 maximum 10 如何添加对逗号后两位数字的小数的验证 像这样解决
  • Node.js 主机名/IP 与证书的替代名称不匹配

    我正在编写一些节点代码来进行 Facebook 的服务器端登录 我已经非常接近让它完全发挥作用了 但是我在请求 auth code 时遇到了麻烦 我认为这可能与 Facebook 应用程序设置有关Site URL但我尝试过的都没有成功 我使
  • JavaScript 和数据库连接

    javascript可以直接访问数据库吗 我觉得我的问题是反问 因为这是一个安全问题 但这有可能吗 有可能的 有了新的html5功能 js可以通过WebSql连接 一个活生生的例子 http html5demos com database
  • AngularJS:如何在 AngularJS 中使用或注入第三方库

    我是 Angular 和 Deployd 的新手 想知道如何一起使用它们 我发现 Deployd 网站中的示例很好 但它只消耗其余 API 数据 我想了解如何将 Deployd 作为 AngularJS 中的服务 例如 通过部署中可用的收集
  • 单击按钮时执行 python 脚本

    我有一个带有一个按钮的 HTML 页面 当我们单击该按钮时 我需要执行一个 python 脚本 并返回到包含结果的同一 HTML 页面 所以我需要对返回值进行一些验证并执行一些操作 这是我的代码 HTML
  • 使用 ChartJS v2.0 自定义图例

    我正在尝试在 ChartJS v2 0 中创建自定义图例模板 在 ChartJS v1 中 我只是向新的 Chart 构造函数添加了一个属性 例如 legendTemplate ul li span style background col
  • 如何使用 Material UI 制作一个圆形复选框?

    我尝试匹配的设计要求复选框为圆形 我正在使用 Material UI 和 React 边框半径不起作用 因为实际图标的边框不是可见复选框的边框 我不能只使用像 Font Awesome 这样的东西 因为它需要实际检查和取消检查 Curren
  • 循环遍历字符串中的 html 标签并将内部文本添加到数组中

    我有一些 HTML 内容保存为字符串 我想循环遍历该字符串中的每个标题标签并获取其内部文本 let str h1 topic 1 h1 p desc of topic 1 p h1 topic 2 h1 p desc of topic 2
  • 字符串编码器固定大小输出

    我接到一个任务 需要编写一个具有以下要求的编码器 输入 1 到 8 位的整数 即 12345678 2352 76543 输出 固定大小的 6 位代码 可以包含任何字母数字和符号 a z A Z 0 9 该操作必须是可逆的 因此给定一个代码
  • 如何使用环回设置 OAuth 2.0 服务器

    我想使用名为 Loopback component oauth2 的包使用 Loopback 设置 OAuth 2 0 服务器 文档在这里 https docs strongloop com display public LB OAuth
  • 为什么 Firefox 对“select”标签上的“click”事件的反应与 Webkit 和 IE 不同?

    我意识到 Firefox 对待click事件于
  • JavaScript:字符串连接性能低下? Array.join('')?

    我读过如果我有一个for循环 我不应该使用字符串连接 因为它很慢 例如 for i 0 i lt 10000000 i str a 相反 我应该使用Array join 因为它更快 var tmp for i 0 i lt 10000000
  • 在 WordPress 页面上嵌入 swf

    我正在尝试将 swf 嵌入到 WordPress 页面中 这听起来很简单 但它不起作用 我不明白为什么 我已将所有相关文件上传到服务器上 并且我相当确定所有文件路径都是正确的 包含 fla 和 swf 文件的文件夹还包含一个 index h
  • 在单选按钮选择上提交 Rails 表单

    我有以下 Rails 表单 有效 但我想删除 Submit tag 并在选择单选按钮后立即提交表单 我怎么做 p nbsp nbsp p p p 所以我找到了精确的解决方案 感谢输入人员 它帮助我重新定义了我的谷歌搜索
  • 我们可以使用 axios 的 onDownloadProgress 来加载 API 吗?

    我需要使用 axios 创建一个用于在 React 项目中加载 API 的进度条 我为此发现了 onDownloadProgress 函数 但我不知道我们是否可以使用它来获取诸如加载百分比之类的信息 或者它是否仅用于文件下载 所以我不确定我
  • JSON 和 AJAX 与 jQuery 有什么区别?

    我听说 JSON 会序列化所有数据 这可以防止我在跨浏览器支持等方面遇到客户端问题 我一直在使用 AJAX 和 jQuery 这看起来很简单 但我不确定其中的区别 我读过我也可以使用它来获取数据 ajax url url dataType
  • 从 BLOB 打印 PDF

    我从外部 API 获取 PDF 文件 使用此代码我可以正确下载该文件 var req new XMLHttpRequest req open POST url true req responseType blob req setReques
  • 将 csv 解析输出保存到变量

    我是使用 csv parse 的新手 项目 github 中的这个示例满足了我的需要 但有一个例外 我不想通过 console log 输出 而是想将数据存储在变量中 我尝试将 fs 行分配给变量然后返回data而不是记录它 但这只是返回了

随机推荐

  • 在 Azure Function App 中配置 Application Insights 的云角色名称

    我想设置从我的 Azure Function App v2 发送到应用程序洞察的遥测数据的 cloud rolename 我的 host json 中的 AI 配置如下所示 applicationInsights sampling isEn
  • 如何解析具有多个小数点的字符串

    我想将诸如 10 0 20 之类的字符串解析为数字 以便比较 C net 中具有相同格式的另一个字符串 例如 我将比较这两个数字 看看哪个数字小于另一个数字 如果 10 0 30 我不确定应该使用哪种解析方法 因为在这种情况下 decima
  • 如何从元组数组创建字典?

    假设我有可以识别的对象数组 并且我想从中创建字典 我可以轻松地从数组中获取元组 如下所示 let tuples myArray map return 0 id 0 但我看不到字典的初始化程序来获取元组数组 我错过了什么吗 我是否已经为此功能
  • 使用 git 在整个文件上“接受他们的”或“接受我的”的简单工具

    我不需要可视化合并工具 而且我也不想必须 vi 冲突文件并手动在 HEAD 我的 和导入的更改 他们的 之间进行选择 大多数时候 我要么想要他们的所有更改 要么想要我的所有更改 通常这是因为我的更改使其上升并通过拉动返回给我 但可能在各个地
  • 等列值数量求和的公式

    给定一个包含两列的电子表格 例如 A 和 B 每列下面包含 n 个值 所有文本 有没有一个公式可以让我只填充一个包含 A 列和 B 列中相等值数量的单元格 Example A B 1 M M 2 L M 3 L L 4 M M 5 M L
  • 无法从 cin.get() 获取 char

    我正在做一些关于 C 的初学者练习 这让我很困惑 我可以输入数字 但之后无法选择输入字符 并且会跳到最后一行 我知道我可以使用 cin gt gt 符号 但我想知道为什么这不起作用 include
  • 检查 canAuthenticateAgainstProtectionSpace 中的公钥

    我被要求根据已知值检查公钥canAuthenticateAgainstProtectionSpace 委托回调NSURLConnection http developer apple com library mac documentatio
  • 在网站上以多种形式输入密钥

    我有一个有两种表格的网站 一个用于搜索 另一个用于登录 当我使用回车键提交时 搜索总是被调用 因为它是页面上的第一个表单 我想要做的是对回车键进行编程 以在某个文本框获得焦点时单击某个按钮 我使用 asp textbox 和 asp but
  • 响应 django CORS 问题

    错误详情 单击按钮时生成了两个请求 到目前为止我搜索了什么 Axios 通过 Django REST Framework 被 CORS 策略阻止 https stackoverflow com questions 55366740 axio
  • 返回常量引用和右值引用之间的区别

    如果我没记错的话 我认为 const 引用和右值引用都可以绑定到右值 返回前者的函数和返回后者的函数之间有什么实际区别吗 编辑 我无法修改前者 但为什么我会对修改右值感兴趣 是否有意义 A const左值引用可以绑定到任何东西 右值引用只能
  • 如何从java/或命令行使用/m“宏参数”打开word文档而不指定winword.exe路径

    我想做接下来的事情 String cmd cmd c c Program Files x86 Microsoft Office Office12 WINWORD exe mOpenPage c Navodilo doc Process pr
  • 将外部 svg 调用到另一个 svg

    我有多个内联 svgs 所有这些都有一个共同的路径 一个图像 通常这个公共部分应该定期更改 因此 如果我将公共区域保存为单独的 svg 文件 是否可以将通用 svg 文件调用到另一个内联 svg 中 E g main svg
  • 让所有进程并行

    我正在尝试使用 C 的 TPL 并行获取所有进程的 CPU 我的代码是 private IDictionary
  • 必须有 Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK) 才能运行 Dbeaver。没有Java虚拟机

    在系统中安装 dbeaver 工具时未找到 Java 虚拟机 该怎么做才能从中恢复 如果你安装了zip存档或tar gz的档案dbeaver then 转到 dbeaver 目录 解压存档后创建的目录 在文本编辑器中打开 dbeaver i
  • 在 cygwin 上编译 android boost 时无法识别的命令行选项

    我正在尝试在 cygwin 的帮助下编译 boost以下文章 http www codexperiments com android 2011 05 tips tricks building boost with ndk r5 但是当我运行
  • Ajax 调用在 IE 中不起作用,除非您修改安全设置

    IE 有时很糟糕 直到 IE 10 IE 才提供对 XMLHttpRequest 对象的支持 相反 您必须使用 XActiveXObject 对象来运行 AJAX 调用 JQuery 默认启动该对象 并在三元函数中维护它 如果它存在 本质上
  • 支持 Apps Script Web App 5000 个并发用户

    我正在为 G Suite 客户构建一个小型应用程序 该应用程序将供客户的所有员工使用 在高峰时段可以看到多达 5 000 名并发用户 他们没有应用程序制作工具 也不打算很快启用应用程序制作工具 Apps 脚本 Web 应用程序能够处理这么多
  • Eclipse 可执行启动器错误:无法找到配套共享库

    我在计算机上安装了 Eclipse Indigo 和 Android 插件 它完美运行了大约两周 今天 我更新了java和quicktime 然后重新启动了我的计算机 当它重新启动时 Eclipse 完全消失了 所有程序文件都完全消失了 当
  • 如何从xml中的另一个包加载资源?

    我知道可以使用如下代码从另一个包安装资源 xml 文件 String resourceName getResources getResourceEntryName layoutResID String resourceTypeName ge
  • 保存 JSON 文件以便稍后从中获取其他数据

    我希望能够使用新数据保存我的 json 文件 然后调用该数据 以便我可以再次保存新数据 现在它所做的就是 当我调用 JSON 文件数据的任何部分时 保持与我上次手动保存它时相同 我确实编辑了一些代码并更好地描述了我的问题 提前谢谢您 这是我