我有一个JSON文件,需要将它用作数据库来添加,删除和修改用户,我有以下代码:
'use strict';
const fs = require('fs');
let student = {
id: 15,
nombre: 'TestNombre',
apellido: 'TestApellido',
email: 'TestEmail@gmail.com',
confirmado: true
};
let data = JSON.stringify(student, null, 2);
fs.writeFileSync('personas.json', data);
但这会覆盖JSON文件,我需要附加另一个对象,因此它以ID 15继续(最后一个是14)。
这是JSON文件的一部分:
{
"personas": [
{
"id": 0,
"nombre": "Aurelia",
"apellido": "Osborn",
"email": "aureliaosborn@lovepad.com",
"confirmado": false
},
{
"id": 1,
"nombre": "Curry",
"apellido": "Jefferson",
"email": "curryjefferson@lovepad.com",
"confirmado": true
},
]
}
我该怎么做?
答案 0 :(得分:1)
每次要写入JSON文件时,都需要先读取/解析它,更新Object,然后再将其写入磁盘。
已经有一个流行的解决方案可以解决这个问题。结帐lowdb
对于自动索引-我认为文档为该模块提供了一些帮助程序库的实现方法
不要重新发明轮子!
答案 1 :(得分:1)
仅require
个文件,将student
推入personas
道具中,然后
writeFileSync
回来。
'use strict';
const fs = require('fs');
let current = require('./personas.json');
let student = {
id: 15,
nombre: 'TestNombre',
apellido: 'TestApellido',
email: 'TestEmail@gmail.com',
confirmado: true
};
current.personas.push(student);
// Make sure you stringify it using 4 spaces of identation
// so it stays human-readable.
fs.writeFileSync('personas.json', JSON.stringify(current, null, 4));