【问题标题】:Writing to a .json file with node.js filesystem使用 node.js 文件系统写入 .json 文件
【发布时间】:2017-12-16 00:43:59
【问题描述】:

如此处所示:https://anidiots.guide/coding-guides/storing-data-in-a-json-file.html

它向您展示了如何在 discord.js 中创建点系统。但引起我注意的是他们如何使用let points = JSON.parse(fs.readFileSync("./points.json", "utf8")); 读取文件。因此,我正在尝试学习如何创建一个数据库,让我获得积分,可以每天兑换和分享。有点像银行。但我不知道该怎么做。如果有人可以通过 hastebin 链接或任何地方帮助我,我可以深入了解如何使用 JSON.parse(fs.readFileSync("./points.json", "utf8")); 的东西。

如果您想查看我的机器人,请不要犹豫,使用https://discord.me/knut

【问题讨论】:

    标签: javascript json node.js discord


    【解决方案1】:

    您要询问的行是对函数JSON.parsefs.readFileSync 的两次调用。

    • JSON.parse。此函数接收一堆文本并将其转换(解析)为 javascript 对象。例如,当您想要根据文件的内容动态构建某些内容时,它会非常有用。也许w3school 是一个开始寻找相关信息的好地方。

    示例

    var string = "{id: 4, name:'Volley'}"
    var parseObject = JSON.parse(string)
    console.log(parseObject.id); //4
    console.log(parseObject.name); //Volley
    
    • fs.readFileSync。您可能知道,javascript 和 node.js 中的大多数函数都是异步的,也就是说,您必须定义一个回调,在其中使用您想要的值,而不是调用并获取返回值。 fs.readFileSync 只是fs.readFile(callback) 的同步版本,它返回读取文件的内容。 Here 你有关于该功能的文档。

    这些函数其实用起来很简单,你应该努力寻找一些例子或者自己尝试。

    如果你想模仿教程所说的,那么你需要定义另一个文件,每个点的钱,或者如果可以的话编辑第一个文件,这样你就可以像这样的对象

    var point_and_money = {
        points : [...],
        money : [....]
     }
    

    或两个具有单独信息的对象

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

    希望我给了你关于你问什么的提示

    【讨论】:

      【解决方案2】:

      不确定您要达到的目标是什么?

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

      这一行读取一个 json 文件并将其解析为 Javascript-Method。不多也不少。这也可以通过

      在 Nodejs 中完成
      var points = require('./points.json');
      

      您提到了如何做数据库之类的事情?基本上我不确定您是要开发数据库还是更好地使用现有数据库。寻找 MongoDB、SQLLite、IndexedDB 等。几乎每个用例都有大量数据库。 请记住,当文件变大时,您的代码行会以阻塞方式同步读取。 当多个用户同时访问该文件时,您需要以某种方式处理此问题。所以肯定会建议寻找一些现有的数据库解决方案,并有更多时间专注于您的业务逻辑。

      希望我能正确理解您的问题,并且我的回答会有所帮助。

      也许这个问题也是一个很好的开始:Lightweight Javascript DB for use in Node.js

      【讨论】:

        猜你喜欢
        • 2020-09-02
        • 2017-11-28
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        • 2016-07-08
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多