gpt4 book ai didi

javascript - 如果尚未定义 ID,则写入 JSON 数据库

转载 作者:行者123 更新时间:2023-12-03 00:25:19 26 4
gpt4 key购买 nike

我想要一个如下所示的 JSON 文件:

{
"3091015": {
"array": [
"value 1",
"value 2",
...
]
},
"9096539": {
"array": [
"value 1",
"value 2",
...
]
},
...
}

如果需要将新值添加到现有 ID 数组之一,或者需要添加新 ID 及其数组和第一个值,我想要做的是写入或附加到此文件。所以它将作为数据库工作。我想使用 JSON 来轻松手动修改该文件的内容,而且它永远不会大于 1 或 2 MB。下面是一些实际有效的代码,但前提是给定的 ID 及其数组已在 JSON 文件中定义:

fs.readFile("./db.json", "utf8", (err, data) => {
if (err) {
throw err;
} else {
let json = JSON.parse(data);
if (!json) {
json[identificator] = {};
}
if (!json[identificator].array) {
json = json[identificator] = {
array: []
};
}
let array = json[identificator].array;
if (array.includes(value)) return;
array.push(value);
fs.writeFile("./db.json", JSON.stringify(json, null, 4), err => {
if (err) throw err;
});
}
});

最佳答案

你的条件是错误的。您需要测试 json[identificator] 是否存在,而不是 json 是否存在。

此外,json = json[identificator] = ... 是错误的,因为它仅用一个条目替换 json

fs.readFile("./db.json", "utf8", (err, data) => {
if (err) {
throw err;
} else {
let json = data ? JSON.parse(data) : {};
if (!json[identificator]) {
json[identificator] = {
array: []
};
}
let array = json[identificator].array;
if (array.includes(value)) return;
array.push(value);
fs.writeFile("./db.json", JSON.stringify(json, null, 4), err => {
if (err) throw err;
});
}
});

关于javascript - 如果尚未定义 ID,则写入 JSON 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54120988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com