루프 데이터의 노드를 사용하여 JSON 파일을 작성하려고합니다.
let jsonFile = require('jsonfile');
for (i = 0; i < 11; i++) {
jsonFile.writeFile('loop.json', "id :" + i + " square :" + i * i);
}
loop.json의 outPut은 다음과 같습니다.
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);
}
});
이 json 파일이 시간이 지남에 따라 너무 커지지 않으면 다음을 시도해야합니다.
테이블 배열이 포함 된 자바 스크립트 객체를 만듭니다.
var obj = {
table: []
};
그것에 같은 데이터를 추가하십시오
obj.table.push({id: 1, square:2});
stringify를 사용하여 객체에서 문자열로 변환
var json = JSON.stringify(obj);
fs를 사용하여 파일을 디스크에 기록
var fs = require('fs');
fs.writeFile('myjsonfile.json', json, 'utf8', callback);
추가하려면 json 파일을 읽고 객체로 다시 변환하십시오.
fs.readFile('myjsonfile.json', 'utf8', function readFileCallback(err, data){
if (err){
console.log(err);
} else {
obj = JSON.parse(data); //now it an object
obj.table.push({id: 2, square:3}); //add some data
json = JSON.stringify(obj); //convert it back to json
fs.writeFile('myjsonfile.json', json, 'utf8', callback); // write it back
}});
이것은 최대 100MB의 데이터에 효과적입니다. 이 한계를 초과하면 데이터베이스 엔진을 사용해야합니다.
최신 정보:
현재 날짜 (년 + 월 + 일)를 문자열로 반환하는 함수를 만듭니다. 이 문자열 + .json이라는 파일을 작성하십시오. fs 모듈에는 fs.stat (path, callback)라는 파일 존재를 확인할 수있는 기능이 있습니다. 이를 통해 파일이 존재하는지 확인할 수 있습니다. 존재하는 경우 읽기 기능이 없으면 작성 기능을 사용하십시오. 파일을 오늘 날짜 + .json으로 지정할 경로 cuz로 날짜 문자열을 사용하십시오. 콜백에는 stats 객체가 포함되며 파일이 없으면 null이됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다