ฉันพยายามเขียนไฟล์ JSON โดยใช้โหนดจากข้อมูลลูปเช่น:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
outPut in loop.json คือ:
id :1 square : 1
แต่ฉันต้องการไฟล์เอาต์พุตเช่นนี้ (ด้านล่าง) และถ้าฉันเรียกใช้โค้ดนั้นอีกครั้งมันควรจะเพิ่มเอาต์พุตใหม่เป็นองค์ประกอบในไฟล์ JSON ที่มีอยู่เดิม:
{
"table":[
{
"Id ":1,
"square ":1
},
{
"Id ":2,
"square ":3
},
{
"Id ":3,
"square ":9
},
{
"Id ":4,
"square ":16
},
{
"Id ":5,
"square ":25
},
{
"Id ":6,
"square ":36
},
{
"Id ":7,
"square ":49
},
{
"Id ":8,
"square ":64
},
{
"Id ":9,
"square ":81
},
{
"Id ":10,
"square ":100
}
]
}
ฉันต้องการใช้ไฟล์เดียวกันกับที่ฉันสร้างครั้งที่ 1 แต่เมื่อใดก็ตามที่ฉันเรียกใช้องค์ประกอบใหม่ของรหัสนั้นควรเพิ่มในไฟล์เดียวกัน
const fs = require('fs');
let obj = {
table: []
};
fs.exists('myjsonfile.json', function(exists) {
if (exists) {
console.log("yes file exists");
fs.readFile('myjsonfile.json', function readFileCallback(err, data) {
if (err) {
console.log(err);
} else {
obj = JSON.parse(data);
for (i = 0; i < 5; i++) {
obj.table.push({
id: i,
square: i * i
});
}
let json = JSON.stringify(obj);
fs.writeFile('myjsonfile.json', json);
}
});
} else {
console.log("file not exists");
for (i = 0; i < 5; i++) {
obj.table.push({
id: i,
square: i * i
});
}
let json = JSON.stringify(obj);
fs.writeFile('myjsonfile.json', json);
}
});