【问题标题】:Writing to a .json file with node.js filesystem使用 node.js 文件系统写入 .json 文件
【发布时间】:2017-12-16 00:43:59
【问题描述】:
【问题讨论】:
标签:
javascript
json
node.js
discord
【解决方案1】:
您要询问的行是对函数JSON.parse 和fs.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