使用node.js文件系统

时间:2017-07-11 19:42:25

标签: javascript json node.js discord

如下所示: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

2 个答案:

答案 0 :(得分:0)

您要问的问题是两次调用函数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"));

希望我给你一个关于你问的内容的提示

答案 1 :(得分:0)

不确定你想要达到的目标?

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