我试图使用节点从循环数据 例如,在loop.json写入/ JSON文件中使用的node.js
var jsonfile = require('jsonfile');
for (i=0; i <11 ; i++){
jsonfile.writeFile('loop.json', "id :" + i + " square :" + i*i);
}
输出是
id :1 square : 1
,但我写的JSON文件添加数据想要这样的输出文件(下面),如果我再次运行该代码,它应该添加新的输出作为元素在相同的现有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
}
]
}
我想用我创建的第一个时间同一个文件,但每当我运行代码的新元素应该添加在同一文件
var fs = require('fs');
var 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});
}
var 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});
}
var json = JSON.stringify(obj);
fs.writeFile('myjsonfile.json', json);
}
});
感谢回复 我试过它的工作,但如何检查旧文件是否存在,然后运行readlfile代码 else run writeFile直接 我正在创造每日新的当前日期的文件名为 ,并且我希望在此代码运行时整天添加新数据 – Isoftmaster
根据您的新问题更新我的答案 – kailniris
再次感谢您 我让我的代码工作:D with all您的支持 但我用fs.exists函数 我的问题更新与答案 – Isoftmaster