Javascript 如何避免覆盖节点中的现有文件json对象
我试图解决一个问题,即我试图编写一个包含用户输入详细信息的json文件。但每次我输入新的细节,它都会覆盖现有的数据 如何避免覆盖json文件中现有的json对象,并根据用户输入在数组中添加新对象 userData.json: server.js:-Javascript 如何避免覆盖节点中的现有文件json对象,javascript,node.js,json,filewriter,Javascript,Node.js,Json,Filewriter,我试图解决一个问题,即我试图编写一个包含用户输入详细信息的json文件。但每次我输入新的细节,它都会覆盖现有的数据 如何避免覆盖json文件中现有的json对象,并根据用户输入在数组中添加新对象 userData.json: server.js:- 为了附加数据而不是替换数据,可以向fs.writeFile传递+标志: 如果文件不存在,它将创建该文件。如果文件存在,则将追加内容。为了追加数据而不是替换数据,可以向fs.writeFile传递+标志: 如果文件不存在,它将创建该文件。如果文件存在,
为了附加数据而不是替换数据,可以向fs.writeFile传递+标志:
如果文件不存在,它将创建该文件。如果文件存在,则将追加内容。为了追加数据而不是替换数据,可以向fs.writeFile传递+标志:
如果文件不存在,它将创建该文件。如果文件存在,则将追加内容。以下是执行此操作的方法:
fs.readFile('./userdata.json', (err, data) => {
if (err){
console.log(err);
} else {
obj = JSON.parse(data);
obj.push(sendData);
json = JSON.stringify(obj);
fs.writeFile('./userdata.json', json, callback);
}});
每次要添加记录时,都要读取数组,附加到数组中,然后再次转储它。但是,考虑切换到数据库以避免这一点。< P>这是一个肮脏的方式:
fs.readFile('./userdata.json', (err, data) => {
if (err){
console.log(err);
} else {
obj = JSON.parse(data);
obj.push(sendData);
json = JSON.stringify(obj);
fs.writeFile('./userdata.json', json, callback);
}});
每次要添加记录时,都要读取数组,附加到数组中,然后再次转储它。但是,考虑切换到数据库以避免这个.< /p> f.AppEdFrm,但是您可以省略[]。这样,在读取时可以解析文件。或者,最肮脏的做法是读取文件,解析文件,将新对象添加到解析后的数组中,然后再次转储。注意,使用appendFile,除非正确追加,否则可能会生成格式错误的json。例如,如果最后编写的是一个对象{…},而您附加了另一个对象,那么它将以{…}{…}结束,这是格式错误的json。读入、解析、修改然后保存更容易。@ParthShah省略[]这种方式意味着什么?我试过用appendFile。未使用dfs.appendFile,但可以省略[]。这样,在读取时可以解析文件。或者,最肮脏的做法是读取文件,解析文件,将新对象添加到解析后的数组中,然后再次转储。注意,使用appendFile,除非正确追加,否则可能会生成格式错误的json。例如,如果最后编写的是一个对象{…},而您附加了另一个对象,那么它将以{…}{…}结束,这是格式错误的json。读入、解析、修改然后保存更容易。@ParthShah省略[]这种方式意味着什么?我试过用appendFile。没用干这个。没有附加。尝试了这个。没有附加。
fs.writeFile('./userdata.json', data, { flag: 'a+' }, (err) => {
if (!err) {
console.log('done');
}
});
fs.readFile('./userdata.json', (err, data) => {
if (err){
console.log(err);
} else {
obj = JSON.parse(data);
obj.push(sendData);
json = JSON.stringify(obj);
fs.writeFile('./userdata.json', json, callback);
}});