Сохраненный JSON файл перезаписан - PullRequest
0 голосов
/ 13 марта 2020

Я хочу сохранить пользовательский ввод в JSON, для этого, скажем, у меня есть следующий код:

// saves data in to an object
saveData() {
  let summaryValues = {
    what: this.what.txt,
    how: this.how.txt,
    checkedValue: this.checked
  };
  this.savedValueArr.push(summaryValues);
},
 //uses the array with the pushed object to append the JSON
saveAsJson() {
  const fs = require("fs");

 var content = JSON.stringify(this.savedValueArr);
  fs.appendFile("testFile.json", content, err => {
    if (err) console.log(err);
    alert("File has been saved");
    this.what.txt = "";
    this.how.txt = "";
    this.checked = "";
  });
},
 // reads JSON and pushs it to a variable
read() {
  const fs = require("fs");

  fs.readFile("testFile.json", "utf-8", (err, data) => {
    if (err) {
      alert("An error ocurred reading the file :" + err.message);
      return;
    }

    // push parsed data back in to an array
    let dataParse = JSON.parse(data);
    this.test.push(dataParse);

  });

}

read () и saveAs Json () являются событиями щелчка saveAs Json сохраняет данные по клику в testFile. json, read () читает testFile. json по клику, и моя первая проблема в том, что мой JSON выглядит так после того, как я заполнил его двумя массивы

[{"what":"test2","how":"test2","checkedValue":2},{"what":"test1","how":"test1","checkedValue":1}][{"what":"test2","how":"test2","checkedValue":2}]

Моя вторая проблема: если я закрываю приложение, затем снова открываю его и нажимаю на кнопку, которая имеет функцию чтения (для загрузки данных), а затем заполняю из полей и нажмите на кнопку, к которой привязана функция saveAs Json, my JSON перезаписывает старые сохраненные данные и содержит только новые. Что я не хочу, чтобы это произошло.

Я использую электрон с vue. js, если это поможет.

1 Ответ

0 голосов
/ 13 марта 2020

Мне удалось это исправить, изменив переменную в функции чтения

read() {
  const fs = require("fs");

  fs.readFile("testFile.json", "utf-8", (err, data) => {
    if (err) {
    alert("An error ocurred reading the file :" + err.message);
    return;
}

// push parsed data back in to an array
let dataParse = JSON.parse(data);
// CHANGED
this.savedValueArr.push(dataParse);

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...