【发布时间】:2021-04-30 09:07:45
【问题描述】:
我已经为此查看了多个资源,但是似乎没有一个能够回答我的问题。我的 React 应用程序中有一个名为 items.json 的本地 JSON 文件。在该文件中,是我希望能够更新的对象列表。我尝试过使用fs,但这显然在 React 中不起作用,因为我收到了这个错误:
Unhandled Rejection (TypeError): fs.readFileSync is not a function
我想要做的是,当代码获得一个新项目时,它会查看 JSON 文件以查看其name 属性中是否存在具有匹配值的现有对象。如果有,它会将对象count 属性加1,否则它会创建一个新对象,并将其附加到JSON 文件中的列表中。这是我为此编写的代码。逻辑似乎是合理的(虽然它没有经过测试),但我不知道如何读取/写入数据。
let raw = fs.readFileSync("../database/items.json");
let itemList = JSON.parse(raw);
let found = false;
for (let item of itemList.averages) {
if (item.name === this.state.data.item_name) {
found = true;
item.count += 1;
}
}
if (!found) {
let newItem = {
name: this.state.data.item_name,
count: 1,
}
itemList.averages.push(newItem);
}
let newRaw = JSON.stringify(itemList);
fs.writeFileSync("../database/items.json", newRaw);
JSON 文件:
{
"averages": [
{
"name": "Example",
"count": 1,
}
]
}
【问题讨论】:
-
您在浏览器中。您不能在文件系统上写入文件,但可以提示用户下载它们。 Related
-
为什么不直接导入json文件?
-
@Gh05d 我最初是这样做的,但据我所知(不远),imorted 文件是只读的。我可能错了
-
好的,另一个问题。为什么要将其保存在 JSON 文件中?为什么不使用 localStorage 或 sessionStorage 之类的东西?
-
我只是假设 JSON 会是最简单的,因为我知道它是如何工作的,但是如果 localStorage 和 sessionStorage 是一个更好的选择,我愿意学习它是如何工作的
标签: javascript node.js json reactjs