我正在尝试使用循环数据中的节点编写 JSON 文件,例如:
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
    jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
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
      }
   ]
}
我想使用我第一次创建的同一个文件,但是每当我运行该代码时,新元素都应该添加到同一个文件中
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);
    }
});